java - 实现没有类型参数的泛型接口(interface)

标签 java generics interface

假设我有一个接口(interface) A通用类型:

public interface A<T> {
    T getT();
}

和一个类 B实现它:

public class B implements A {
    public Integer getT() { return 1; }
}

...但没有给它一个类型参数。

这里发生了什么? A推断为 A<Integer> ?是否可以强制用户使用 implements 写入类型参数声明(如 B implements A<Integer> )?

最佳答案

您的问题:

What happens here?

由于您省略了泛型类型,系统将其推断为 Object。您可以执行以下操作并获得相同的结果:

    public class B implements A<Object> { 
        ...
    }

下一个问题:

Is it possible to force user to write type parameter with implements (like B implements A)

是的。这是这样的:

    interface A<T extends Integer> 

希望这对您有所帮助。

关于java - 实现没有类型参数的泛型接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16505170/

相关文章:

java - 从泛型获取类不起作用

Java 通用单例工厂模式

c# - 从 PDF 中仅提取粗体文本的最佳方法

c# - C# 中的类<类型>

java - Apache Kafka - 实现 KTable

java - 使用抽象类实现接口(interface)

java - 为什么Java接口(interface)不能通过不太具体的功能来实现

java - 在接口(interface)抽象中标记方法有什么意义吗?

java - 为 Restful 方法编写 RequestBody

java - 如何在Java中复制文本文件,并打印出原始文件和复制的文件