我需要 Java 中类似的东西(C# 示例)
class Program
{
static void Main(string[] args)
{
Method<String>();
}
static void Method<T>()
{
Type typeT = typeof(T);
Type typeString = typeof(String);
if (typeT == typeString)
{
Console.WriteLine("Is String");
}
}
}
}
我有通用方法,需要检查方法中的类型 T。
protected <T> MyClass<T> myMethod(MyClass<T> myObj){
// if T is string do ..., else do ...
}
最佳答案
您需要一个 Class<T>
类型的附加参数,因为类型删除后通用信息将被删除。然而,有一个 Class<T>
将允许您访问有关 T
的(元)信息在运行时:
protected <T> MyClass<T> myMethod(MyClass<T> myObj, Class<T> clazz) {
if (clazz == String.class) { ... }
}
关于java - 如何在泛型方法中检查泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32755748/