以下代码无法编译,因为Java无法推断getSomething的类型参数:
class Example {
static void callIt() {
takeString(getSomething());
}
static void takeString(String s) {
}
static <T> T getSomething() {
return null;
}
}
是否有某种方法可以指定类型参数,例如<String>getSomething()
,但是没有指定要调用的类的名称?即不是Example.<String>getSomething()
。
答案 0 :(得分:3)
是否有某种方法可以指定类型参数
<String>getSomething()
,但未指定类的名称 它被召唤?即不是Example.<String>getSomething()
不,没有。 That is the syntax for explicitly providing a type argument to a generic method.
您的代码应该在Java 8上进行编译,并进行改进和有针对性的类型推断。
答案 1 :(得分:-1)
你为什么不这样做:
static Object getSomething() {return null;}
然后将其转换为字符串:
takeString((String)getSomething());
从你的简短例子中可以看出为什么你需要泛型