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



以下代码不编译,因为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());

从您的简短示例来看,您不清楚为什么需要泛型

最新更新