[JAVA] 9. JAVA中的泛型
2021-02-07 08:19
标签:int 还需要 push code 代码 return stat utils new 当我们需要创建一个类,其中的参数类型,需要后期给定的时候,就需要重新更改类型,再次创建,如下: 当我们这里想要一个UserList的时候,需要将元素的类型改为User,这样还需要重复创建结构一样的类,显然有些冗余,那么如何解决这个问题,一个很poor的方法,就是声明类型时,把元素类型定为Object,这样可以传入所有类型的变量。 但是在使用变量的时候,如果需要根据类型选择,在编写代码上会较为复杂。 下面使用泛型定义 之后在main中创建调用。 可以看到T赋值为了包装类Integer,但是传入参数的时候,是一个int类型的原始变量,这里编译器会默认调用包装类,进行包装,当获取这个元素的时候,会进行解包。 可以不将类声明为泛型,只将其中的函数声明为泛型函数,如下面的工具类中的函数: 这里需要将参数类型写做 [JAVA] 9. JAVA中的泛型 标签:int 还需要 push code 代码 return stat utils new 原文地址:https://www.cnblogs.com/modai/p/12776354.html泛型类
public class List {
private int[] items = new int[10];
private int count;
public void push(int item){
items[count++] = item;
}
public int get(int index) {
return items[index];
}
}
public static void main(String[] args) {
var objectList = new ObjectList();
objectList.push(1);
objectList.push("123");
objectList.push(new User());
int first = (int) objectList.get(1);
// System.out.println(objectList.get(2));
}
public class GenericList
public class Main {
public static void main(String[] args) {
var list = new GenericList
泛型函数
比较数字
public class Utils {
// 在工具类方法中,常声明为static,这样就不用实例化了
public static int max(int first, int second) {
return (first > second) ? first : second;
}
}
比较泛型函数
public class Utils {
// 在工具类方法中,常声明为static,这样就不用实例化了
public static
T
,将返回值类型写作 T
,并注意,要加入泛型声明
,为了比较两个对象,这个泛型需要继承Comparable接口,并将接口的泛型设置为T
,之后函数体内可以调用参数为T
类型的compareTo函数。
文章标题:[JAVA] 9. JAVA中的泛型
文章链接:http://soscw.com/index.php/essay/52108.html