我问过自己,如果静态类型中没有给出动态类型的所有类型,菱形运算符是否也有效。
看代码:如果我需要 C 类型用于“Class”中的方法,但我使用“Interface”作为静态类型并使用菱形运算符,那会不会有问题?
interface Interface<A, B> {
...
}
class Class<A, B, C> implements Interface<A, B> {
...
}
Interface<A, B> test = new Class<>();
最佳答案
此代码可以正常工作,您可以毫无问题地实例化 Class
。如果我假设泛型 C
将通过构造函数(或其他方式)初始化,您可以在 Interface
方法中使用该引用,该方法在 Class 中重写
。
关于java - 菱形运算符和动态类型中的附加类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56688632/