如何在不指定类的情况下调用具有显式类型参数的Java方法?

And*_*ran 3 java generics

以下代码无法编译,因为 Java 无法推断 getSomething 的类型参数:

class Example {
  static void callIt() {
    takeString(getSomething());
  }

  static void takeString(String s) {
  }

  static <T> T getSomething() {
    return null;
  }
}
Run Code Online (Sandbox Code Playgroud)

是否有某种方法可以指定类型参数,例如<String>getSomething(),但不指定所调用的类的名称?即不是Example.<String>getSomething()

Sot*_*lis 5

是否有某种方法可以指定类型参数,例如 <String>getSomething(),但不指定所调用的类的名称?即不是Example.<String>getSomething()

不,那里没有。这是显式向泛型方法提供类型参数的语法。

您的代码应该在 Java 8 上编译,并具有改进的和有针对性的类型推断。