当前位置: 首页 > 知识库问答 >
问题:

方法签名中未使用的Java泛型类型

欧阳嘉年
2023-03-14
public static <K, V, S extends StateStore> Materialized<K, V, S> as(String storeName) {
    Named.validate(storeName);
    return new Materialized(storeName);
}

private Materialized(String storeName) {
    this.storeName = storeName;
}

共有1个答案

端木承业
2023-03-14

当泛型类型不在方法中使用时,在方法签名中指定泛型类型有什么用

您实际上正在(或应该)在方法中使用它们:

return new Materialized(storeName);

这是一个原始类型。这是您链接的源代码中的一个转录错误:

return new Materialized<>(storeName);
return new Materialized<K, V, S>(storeName);
<T> List<T> myMethod() {
  return new ArrayList<>();
} 

// At the call site:
List<String> list = myMethod();
list.add("Hello");
 类似资料:
  • 问题内容: 如果在Java中创建泛型类(该类具有泛型类型参数),则可以使用泛型方法(该方法带有泛型类型参数)吗? 考虑以下示例: 正如您对通用方法所期望的那样,我可以使用任何对象调用的实例: 但是,如果我尝试使用 不 指定泛型类型的实例,则无论传入什么,我都会调用返回, 奇怪的是,如果返回类型是通用类,它将编译(例如(实际上,这可以解释-参见下面的答案)): 此外,如果输入通用类,即使仅使用通配符

  • 如果在Java中创建泛型类(该类具有泛型类型参数),是否可以使用泛型方法(该方法采用泛型类型参数)? 考虑下面的例子: 正如您所期望的那样,对于任何对象,的实例,我都可以调用: 但是,如果我试图使用的实例而不指定泛型类型,那么调用将返回一个

  • 问题内容: 我以为我明白了这一点,但显然不是…… 我有这样的方法签名: 但是如果我尝试打电话 我收到一个编译错误:“类型中的方法doSomething(List)…不适用于参数(List>)” 但是,如果我更改为 它仍然不起作用,但是 显然,它可以绕开泛型使用。 这似乎很奇怪。 有人可以填写我吗? 另外,在这种情况下,我想使用任何包含任何通用类型的TypeAs的List;undefined,Typ

  • 我有一个方法,我想在其中接受必须扩展抽象类的类类型。之间的区别是什么 ? 在第二种情况下,我不能直接引用方法内部的类型。哪些类类型可以传递给这两个方法有什么不同吗?

  • 我正在尝试创建一个通用类,该类将使用java中的3个数字(在我的例子中是int、float和double)。 在这个类中,我需要一个double方法,该方法将返回最大数量的3,但我很难返回double,因为它是一个泛型类。 这是我到目前为止所拥有的,但是当用整数测试它时,我得到了以下错误: Java语言lang.ClassCastException:java。lang.Integer不能转换为ja

  • 问题内容: 背景 我曾经写过这种方法: 应该这样称呼它: 这很好用(尽管我在研究当前容易出错的问题时在这里的答案中已经看到)。 目前的情况 无论如何,现在我正在编写以下代码(在扩展javax.servlet.jsp.tagext.TagSupport的类中): 目的是可以这样称呼: 我的评估方法中的代码显然不起作用。的第二个参数应该是Class对象。这导致我: 我的问题 如何获得通用(返回)类型的