我想在一个内部类中声明一个接口,它显示编译器错误消息“内部类不能有静态声明”。
public class Apple {
//...
public class InnerApple{
//...
public interface InnerInterface{
//Error: inner classes cannot have static declarations
}
}
}这是否意味着Java中的接口实际上是静态的?
我正在使用Java1.7。谢谢!!
发布于 2015-05-06 18:39:09
接口总是静态的--从某种意义上说,不可能有任何对另一个实例的依赖。
拥有两个级别的内部声明是非常罕见的,但是如果它是有意的,我希望至少InnerApple是静态。
public class Apple {
public static class InnerApple{
public interface InnerInterface{
//this does not cause an error
}
}
}在大多数情况下,忽略了内部类的关键字静态。如果是这样的话,这个类可能包含对周围实例的依赖关系(而不仅仅是与静态内部类一样)。
发布于 2015-05-06 18:44:47
https://stackoverflow.com/questions/30084952
复制相似问题