【问题标题】:Inner Interface inside a Class类中的内部接口
【发布时间】:2017-12-13 19:31:08
【问题描述】:

我的代码如下,我的问题是第1行的含义是什么,如果没有含义那么为什么eclipse允许infact在键入ClassO时提供inner作为可用选项。 p>

如果内部是静态嵌套类而不是内部接口并且如果有意义那么它是有意义的有什么用,我能用它做什么?

public class InterfaceInsideClass 
{

    public static void main(String[] args) 
    {
        ClassO.inner              **// Line 1**
    }

}

class ClassO
{
    interface inner
    {
        void msg();
    }

    class Two implements inner
    {
        public void msg()
        {
            System.out.println("Class Two");
        }
    }

    class Three
    {
        public void msg()
        {
            System.out.println("Class Three not implementing interface but having same method");
        }
    }

    static class Four
    {
        public void msg()
        {
            System.out.println("Class Four");
        }
    }
}

【问题讨论】:

  • 和其他界面一样吗?例如,你可以说ClassO.inner.class.getName(),或者它可以包含常量,或者静态方法..
  • 或者您可能想要创建该类型的变量。它只是一个类型,就像任何其他类型一样。
  • 请注意,Java 类和接口名称应以大写字母开头。
  • @xs0 - 感谢您的回答,它适用于静态方法,但最终变量/常量出错:------- public class InterfaceInsideClass { public static void main(String[] args) { ClassO.inner.i; // 这里发生错误 } } class ClassO { interface inner { int i=10; } }

标签: java class interface


【解决方案1】:

一个关于静态嵌套类和嵌套接口最常见的用途是用于另一层的包装。

如果特定接口仅打算通过其内部或嵌套类在特定类或其子类中实现,那么将该接口包含在这些类中是有意义的。

很好的例子是:java.util.Map.Entry

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多