作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我有一个接口(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/
我是一名优秀的程序员,十分优秀!