gpt4 book ai didi

Java 泛型类型识别

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:38 24 4
gpt4 key购买 nike

这是我的类(class)结构。

public class Node<T> {
private T value;

public Node(T val) {
this.value = val;
}

public T evaluate() {
return value;
};

}

T 可以是IntegerDoubleDateLongString .

现在,无论如何我都可以确切地知道 T 是什么类型?谢谢。

最佳答案

您可以那个通用变量调用getClass() 方法并找出类。泛型基本上在运行时被清除,因此无界泛型不过是java.lang.Object。因此,您可以在该通用变量上调用 Object 类支持的所有方法

在运行时,泛型对象上的getClass() 将返回用于替换泛型的实际

例如

public class Node<T> {
private T value;

public Node(T val) {
Class<?> clazz = val.getClass();
checkType(clazz);
this.value = val;
}

public T evaluate() {
return value;
};

private void checkType(Class<?> c) {
if(c.getName().equals(Integer.class.getName())) {
//...
}
}

}

关于Java 泛型类型识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607029/

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