Java泛型

目录

一、泛型的作用

 二、泛型的说明

三、泛型的例子

四、泛型的细节

五、泛型的通配


一、泛型的作用

        对集合中的类型做安全约束。 例如,以下代码,泛型为Dog,控制了集合中只能存放Dog类

ArrayList<Dog> array = new ArrayList<Dog>();

 二、泛型的说明

1)泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题
2)在类声明或实例化时只要指定好需要的具体的类型即可。。
3)Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮
4)泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。

Java泛型(Generics)是JDK 5.0及以后版本引入的一个新特性,它允许在定义类、接口和方法时使用类型参数(type parameters)。这些类型参数在声明时是不具体的,而在使用时才为它们指定具体的类型。泛型的主要好处是在编译时提供类型安全,减少类型转换的代码,并允许我们编写更加通用和可重用的代码。

三、泛型的例子

 泛型类

public class Box<T> {  
    private T t;  
  
    public void set(T t) { this.t = t; }  
    public T get() { return t; }  
}

在这个例子中,Box 是一个泛型类,其中 T 是一个类型参数。你可以使用任何类型来实例化 Box 类,例如:

Box<Integer> integerBox = new Box<>();  
integerBox.set(new Integer(10));  
Integer value = integerBox.get();  
  
Box<String> stringBox = new Box<>();  
stringBox.set("Hello");  
String str = stringBox.get();

   泛型接口

public interface MyInterface<T> {  
    void doSomething(T t);  
}

你可以实现这个接口,并指定具体的类型参数:

public class MyInterfaceImpl implements MyInterface<String> {  
    @Override  
    public void doSomething(String s) {  
        System.out.println(s);  
    }  
}

泛型方法

public class GenericMethods {  
    public static <T> T firstElement(T[] array) {  
        if (array.length > 0) {  
            return array[0];  
        } else {  
            return null;  
        }  
    }  
}

<T> T 是一个泛型方法的声明部分,其中 <T> 是类型参数的声明,而 T 是该类型参数在方法返回类型或参数列表中的使用。

你可以这样调用泛型方法:

Integer[] intArray = {1, 2, 3, 4, 5};  
Integer firstInt = GenericMethods.firstElement(intArray);  
  
String[] strArray = {"Hello", "World"};  
String firstStr = GenericMethods.firstElement(strArray);

四、泛型的细节

1. interface List<T>{}, public class HashSet<E>{}.等等说明:T,E只能是引用类型看看下面语句是否正确?:List<Integer> list = new ArrayList<Integer> ();• List<int> list2 = new ArrayList<int>();
2.在指定泛型具体类型后,可以传入该类型或者其子类类型3.泛型使用形式List<Integer> list1 = new ArrayList<Integer>();List<Integer> list2=new ArrayList<>(0;[说明:]
3.如果我们这样写 List list3=new ArrayList(0);默认给它的泛型是[<E>E就是Object]即:

五、泛型的通配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值