我正在使用的工具为我正在使用的不同结构生成不同的类
例如,它可以像这样创建两个类
class TypeSupportImpl {
void callme()
{
System.out.println("I an here");
}
void test()
{
}
}
public class StringReader extends TypeSupportImpl
{
void callme()
{
System.out.println("HelloReader an here");
}
void test()
{
}
public static String get_name() {
String s = "hello";
return s ;
}
}
public class HelloReader extends TypeSupportImpl
{
void callme()
{
System.out.println("HelloReader an here");
}
void test()
{
}
public static String get_name() {
String s = "hello";
return s ;
}
}
现在我想为这个类编写一个通用的包装器。我希望通用包装器以这样的方式运行:如果用户传递Hello
作为类型,它应该创建Helloreader
的对象。如果用户位于String
,则应创建StringReader
对象。
public class TestCode<T > {
//if T= Hello
HelloReader.get_name();
//if T== String
StringReader.get_name()
}
请您建议如何在不使用反射的情况下达到最佳效果。
答案 0 :(得分:0)
即使有了反思,你根本做不到。类型擦除意味着在运行时,您将无法看到类型参数是什么,即使您将其作为参数传递(请参阅EnumSet
的构建器),您必须使用反射,因为static
元素在编译时绑定到特定类型。