使用泛型类型JAVA在不同类型之间进行选择

使用泛型类型JAVA在不同类型之间进行选择,java,generics,Java,Generics,泛型类型:它们的存在不是为了让事情变得更简单吗? 我想知道为什么我不能在Java中这样做: if(input.equals("Integer")) { GenericClass<Integer> mygen = new GenericClass<Integer>(); } else { GenericClass<String> mygen = new GenericClass<String>(); } 如果基于用户的输入,我不

泛型类型:它们的存在不是为了让事情变得更简单吗? 我想知道为什么我不能在Java中这样做:

if(input.equals("Integer")) {
    GenericClass<Integer> mygen = new GenericClass<Integer>();
}
else {
    GenericClass<String> mygen = new GenericClass<String>();  
}

如果基于用户的输入,我不能对整型或字符串类型使用相同的“mygen”名称,那么使用泛型类型有什么好处?我的意思是,然后我必须为另一个类型重复这100行。

泛型是为了编译时类型安全。您的示例使用泛型是错误的。与其使用泛型,不如使用简单继承,让
mygen
具有基类的类型?我不知道您为什么觉得它不适合作为泛型示例。这正是泛型可以解决的问题!您有一个具有不同方法的类。该类及其方法可以根据用户需求接受任何类型的数据。实际上,
mygen
范围仅在
中,如果block
那么另一个局部变量
mygen
else
中确实,您的变量立即超出范围。。。
mygen.method1();
...
mygen.method100();