gpt4 book ai didi

Java 泛型类 - 确定类型

转载 作者:IT老高 更新时间:2023-10-28 20:32:04 26 4
gpt4 key购买 nike

如果我要创建一个泛型的java类,比如:

public class Foo<T>

如何在该类内部确定“T”最终是什么?

public ???? Bar()
{
//if its type 1
// do this
//if its type 2
// do this
//if its type 3
// do this
//if its type 4
// do this
}

我已经研究了 Java API 并使用了反射的东西、instanceof、getClass、.class 等,但我似乎无法对它们做出正面或反面。我觉得我已经很接近了,只需要合并一些电话,但总是不够用。

更具体地说,我正在尝试确定该类是否使用 3 种可能类型之一进行实例化。

最佳答案

我在几个项目中使用了与他在此处解释的类似的解决方案,发现它非常有用。

http://blog.xebia.com/2009/02/07/acessing-generic-types-at-runtime-in-java/

它的要点是使用以下内容:

 public Class returnedClass() {
ParameterizedType parameterizedType = (ParameterizedType)getClass()
.getGenericSuperclass();
return (Class) parameterizedType.getActualTypeArguments()[0];
}

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

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