gpt4 book ai didi

Java 将对象的实例类型传递给泛型类类型参数

转载 作者:行者123 更新时间:2023-12-03 02:37:32 25 4
gpt4 key购买 nike

是否可以将对象实例类型作为泛型的类型参数传递?类似于以下内容:

Object obj = new Double(3.14); //Instance type Double

//Could I do the following?
Item<obj.getInstanceType()> item = new Item<obj.getInstanceType()>(obj);

public class Item<T> {
private T item;
public Item(T item) {
this.item = item
}
public T getItem() {
return this.item;
}
}

最佳答案

不......泛型类型应该在编译时已知。

泛型用于在编译时捕获可能的运行时异常。

List<Integer> list = new ArrayList<Integer>();
//..some code
String s = list.get(0); // this generates compilation error

因为编译器知道 list 仅用于存储 Integer 对象,并且将从 list 获取的值分配给 String 肯定是错误的。如果泛型类型是在运行时确定的,这会很困难。

关于Java 将对象的实例类型传递给泛型类类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com