以下代码不编译,因为Java无法将类型参数推断为getSomething:
class Example {
static void callIt() {
takeString(getSomething());
}
static void takeString(String s) {
}
static <T> T getSomething() {
return null;
}
}
是否有某种方法可以指定类型参数,如<String>getSomething()
,但不指定调用它的类的名称?即不是CCD_ 2。
是否有某种方法可以指定类型参数,如
<String>getSomething()
,但未指定类的名称它正在被调用?即不是Example.<String>getSomething()
不,没有。这是为泛型方法显式提供类型参数的语法。
您的代码应该在Java 8上编译,它具有改进的、有针对性的类型推断。
为什么不直接做:
static Object getSomething() {return null;}
然后将其转换为字符串:
takeString((String)getSomething());
从您的简短示例来看,您不清楚为什么需要泛型