1
时保留类类型我有一个调用一个泛型方法,它被实例化对于某些类型的特殊行为的方法:如何调用中间泛型方法
public static void generic_direct(String s)
{
System.out.println("YOU SUBMIT STRING: premium class");
}
public static <T> void generic_direct(T t)
{
System.out.println("YOU SUBMIT GENERIC: second class");
}
System.out.println("TEST STRING ?");
generic_direct("what ?");
System.out.println("TEST INTEGER ?");
generic_direct(12345);
给出期望的行为:
TEST STRING ?
YOU SUBMIT STRING: premium class
TEST INTEGER ?
YOU SUBMIT GENERIC: second class
但是当它通过另一种通用方法调用时,您将丢失班级类型
public static <T> void generic_indirect(T t)
{
generic_direct(t);
}
System.out.println("TEST STRING ?");
generic_indirect("what ?");
System.out.println("TEST INTEGER ?");
generic_indirect(12345);
给这个:
TEST STRING ?
YOU SUBMIT GENERIC: second class
TEST INTEGER ?
YOU SUBMIT GENERIC: second class
因此,它是可能的,以及如何保护类的类型,当使用中间的通用方法,而不必实例化可能的类型每个中间的方法?
是的,谢谢,我知道,但问题是不是原因,而是如何管理。任何诡计! –
没有我所知道的。正如我所看到的,您要么实现类型特定的generic_indirect(String),要么增强generic_indirect(T)来检查参数的实例并将其转换为相应的类型(在本例中为String)。 –