gpt4 book ai didi

java - 了解Java中泛型的类型

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:57 26 4
gpt4 key购买 nike

我有一个通用类,说:

MyClass<T>

在这个类的一个方法中,我想测试T的类型,例如:

void MyMethod()
{

if (T == String)
...
if (T == int)
...
}

我该怎么做?

谢谢你的帮助

最佳答案

通常情况下,由于类型删除,您不能这样做。参见 Angelika Langer's Java Generics FAQ了解更多详情。

可以做的是传递 Class<T>进入你的构造函数,然后检查:

public MyClass<T>
{
private final Class<T> clazz;

public MyClass(Class<T> clazz)
{
this.clazz = clazz;
}

public void myMethod()
{
if (clazz == String.class)
{
...
}
}
}

请注意,尽管 Java 不允许将原语用于类型参数,因此 int出来了……

关于java - 了解Java中泛型的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886677/

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