Java中泛型使用

   泛型: 1.5 之后出现 提高安全 1 泛型 确定 集合容器的类型。 2 <> 接收一种数据类型,(引用数据类型) ArrayList lis = new ArrayList() 目的: 将运行时期的 错误 转化到 编译时期,提高了安全性! 3 不需要 强制类型转换. 更加安全!

  泛型的 擦除: 泛型在编译时期使用!使用完毕直接擦除。 编译完的时候 不存在 泛型。

  好处: 使用了 泛型,不自需要强制类型转换?(多种数据类型) 为什么? 因为容器中只有一种数据类型。 取出数据之后,在处理数据细节!String 就是 很重要的。在现实的开发中。

  泛型自定义的类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

//使用泛型
class Tools<t>
{
    private T obj;
    public void setObject(T obj)
    {
        this.obj = obj;
    }
    public T getObject()
    {
        return this.obj;
    }
 
}</t>

  泛型应用在方法上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

class Test<e>
{
    //泛型用在方法上
    //当类中的某个方法所使用的类型只有在类上的类型确定了才能确定时,就在方法上使用   
 
    //泛型
    //否则不用泛型
    public void func(E e)
    {
        System.out.println(e);
    }
 
    //该方法单独使用泛型:    方法使用的类型不确定,而且什么类型都行
    //这个    方法被调用时,类型才确定
    public <t> void show(T e)
    {
        System.out.println(e);
    }
     
        //静态是随着类的加载而加载,这是不存在类型,所以静态方法只能自己定义泛型
    public static <w> void function(W e)//Test.function() 
    {
        System.out.println(e);
    }
 
 
    public void ff(int a,int b)
    {
       System.out.println(a+b);
    }
}</w></t></e>

  泛型 定义在接口上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

//泛型用在接口上
 
interface inter<t>
{
    public void show(T t);
}
class Test implements inter<string>
{
    public void show(String t)
    {
         
    }
}
class Demo<e>  implements inter<e>
{
    public void show(E t)
    {
        System.out.println(t);
    }
}
class  Demo9
{
    public static void main(String[] args)
    {
        Demo<string> d = new Demo<string>();
        d.show(99);// error
    }
}
</string></string></e></e></string></t>

时间: 2024-12-09 07:19:38

Java中泛型使用的相关文章

Java中泛型的用法总结_java

本文实例总结了Java中泛型的用法.分享给大家供大家参考.具体如下: 1 基本使用 public interface List<E> { void add(E); Iterator<E> iterator(); } 2 泛型与子类 Child是Parent的子类,List<Child>却不是List<Parent>的子类. 因此:List<Object> list = new ArrayList<String>()是错误的. 如果上面

Java 中泛型的全面解析(转)

Java泛型(generics) 是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在JDK 5中的新集合类框架中.对于泛型概念的引入,开发社区的观点是褒贬不一.从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明显的错误.而从不好的地方来说,为了保证与旧有版本的兼容性,Java泛型的实现上存在着一些不够优雅的

Java中泛型的协变

在工作中遇到一个问题,用代码描述如下: package test; import java.util.LinkedList; import java.util.List; public class ListTest { public void func(List<Base> list) { } public static void main(String args[]) { ListTest lt = new ListTest(); List<Derived> list = new

Java中泛型的理解与等价实现

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个 参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引入泛型的好处是安全简单. 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的"任意化 ","任意化"带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实 际参数类型可以预知的情况下进行的.对于强制类型转换错误的情况,编

基于java中泛型的总结分析_java

要我直接说出泛型是个what我还真讲不出来,这里先由一道问题引入: 定义一个坐标点类,要求能保存各种类型的数据,如:整形,浮点型,和字符串类型 既然变量类型起先不确定,那么很容易想到就是用所有类型的父类,也就是Object类来代替 不废话了,用代码来体现 实例1:用Object来实现不确定的数据类型输入 复制代码 代码如下: //这是定义的坐标点类class Point {    private Object x;    private Object y;     //用Object来表示不确定

java中泛型学习2之类型参数(T)

类型参数的形式就是List<T> lst.看测试代码: package cn.xy.test; import java.util.ArrayList; import java.util.Collection; public class Test {  /**   * 该方法使用的只能传Object类型的collection而不能传Object的子类,会产生编译错误   * 因为String是Object的子类而List<String>不是List<Object>的子类 

java中泛型学习1之类型通配符(?)

  实体类 package cn.xy.model; /**  * 生物类  * @author xy  *  */ public class Living {  private String name;  public Living(String name)  {   super();   this.name = name;  }  public String getName()  {   return name;  }  public void setName(String name)  {

java中泛型问题

问题描述 packageshape1;importshape1.Shape1;/***TheShapeclassisusedasasuperclassofotherclasses.*Itprovidestwomethodsdraw()anderase().*/publicabstractclassShape1{/***TheconstructorforclassShape*/publicShape1(){System.out.println("InsideconstructorofShape&q

Java中的Bridge方法

今天在Java中字节码的格式的时候,发现method_info中的access_flags中竟然定了ACC_BRIDGE的值.网上搜了一下,大概理解它的意思了,先记之.   首先是在什么情况下会生成bridge方法(2): bridge method may be created by the compiler when extending a parameterized type whose methods have parameterized arguments. 这是在网上找到的有人贴出来