泛型方法
定义方法的时候自己定义一个类
泛型方法在调用的时候再确定类型参数的具体类型。
可以将静态成员方法定义成一个泛型方法。
public class MAIN {
public static void main(String[] args) {
String s = add("aaa");
int i = add(10);
}
public static <T> T add(T t)
{
return t;
}
}
通配符“?”
可以在使用泛型时代表一切类型
泛型上下限
?extends 类1 表示?接收的必须是类1或者类1的子类
?super 类2 表示?接收的必须是类2或者类2的父类
泛型支持的类型
泛型不支持基本数据类型,只支持对象类型
泛型的本质是将数据类型参数化,通过擦除的方式来实现,泛型信息只存在于代码编译阶段,编译期后所有的都被擦除变成Object
包装类
就是把基本数据类型包装成对象的类型。
public class MAIN {
public static void main(String[] args) {
Integer i = Integer.valueOf(100);
Character c = Character.valueOf('a');
Float f = Float.valueOf(0);
}
}
自动装箱:基本数据类型自动转换为包装类型
自动拆箱:包装类型自动转换为基本数据类型
public class MAIN {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 200;
int ii1 = i1;
int ii2 = i2;
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
System.out.println(list);
}
}
调用add时,100是被自动装箱,变成Integer对象
包装类其他功能
1.可以把基本类型的数据转换为字符串
2.可以把字符串的内容转换成内容对应的基本类型
public class MAIN {
public static void main(String[] args) {
int i = 100;
String s = Integer.toString(i);
String s1 = "120";
int i1 = Integer.parseInt(s1);
int i2 = Integer.valueOf(s1);
System.out.println(i1);
System.out.println(i2);
}
}