java - 是否可以拥有一个带有一个指定类型参数和一个泛型类型参数的 Java 接口(interface)?

标签 java generics interface

我正在尝试这样做:

public interface Foo<T> {
    Stream<String> getAllKeys();
    T getItemByKey(String key);
}

但是,类型删除似乎消除了字符串,所以当我调用 getAllKeys 时我得到一个原始的Stream

我认为这会起作用,因为这些不是具有相同签名的方法,并且 Stream 类型参数本质上是绑定(bind)的 apparently should therefore get compiled to that type .

有什么方法可以实现这个功能吗,还是Java泛型的缺点?即使转换 Stream 或其元素似乎也效果不佳。

最佳答案

getAllKeys()只会返回原始 Stream如果您使用原始 Foo类型。

另一方面,如果您使用

Foo<Integer> foo = ...

然后

foo.getAllKeys()

将返回 Stream<String> .

关于java - 是否可以拥有一个带有一个指定类型参数和一个泛型类型参数的 Java 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59717700/

相关文章:

存储类实现接口(interface)时出现 Java ArrayStoreException

c# - 需要将泛型转换为其接口(interface)

java - Java中的树遍历

c# - 在 C# 中显示继承接口(interface)实现的最佳方式是什么?

java - 如何在 IntelliJ IDEA 中运行 GWT 应用程序的多个实例

ios - 如何声明具有符合协议(protocol)的具体返回类型的函数?

java - 我不确定如何使这个堆栈实现动态化

java - 在 switch 语句中使用 java.lang.Class<?>

java - 如何在 Spring MVC 应用程序中测试 Aspect

java - 使用 Ant 构建包含混合 Scala 和 Java 源文件的项目 - 非法循环引用错误