我在 Java 中声明了以下接口:
public interface ITest {
void doStuff();
}
这是由另外几个覆盖 doStuff() 方法的类实现的。然后我将此接口用作函数中的类型:
public gonnaDoSomeStuff(ITest fun) {
fun.doStuff();
}
但是,Java(和 Eclipse)声明该方法对于 ITest 类型是未定义的。我究竟做错了什么?
事实证明,包含我的 goingDoSomeStuff 方法的类附加了一个泛型,它被引用而不是实际的接口。
错误的
public class Dog<ITest> {
public gonnaDoSomeStuff(ITest fun) {
// ...
}
}
对
public class Dog {
public gonnaDoSomeStuff(ITest fun) {
// ...
}
}
您不能访问公共类中的默认声明方法,因为它的范围是有限的。您应该将其声明为 public 以便在公共类中调用。