java - java中的嵌套接口(interface)

标签 java interface nested

我正在类中使用“Flags”接口(interface)。我们就这样调用它吧

public interface Flags

我希望能够使用一个对象实现 Flags 接口(interface),并让它继承我放入其中的所有子标志。示例

public interface Flags{
    static int flag1 = 0;

    public interface Size{
        public static int big = 1;
        public static int small = 2;

    public interface Direction{
        public static int left = 3;
        public static int right = 4;

所以我想要的是让对象 Foo 实现 Flags 类

public class Foo implements Flags{}

并且可以访问所有子标志(即左、右、大、小、flag1)。

但我也想要它,以便我可以让 Foo1 实现 Size 并且只能访问 Size 标志

public class Foo1 implements Flags.Size{}

我找到了这个Can we define an interface within an interface?这表明嵌套接口(interface)是可能的,但我不确定如何以我正在寻找的方式执行此操作。

我尝试过简单地做我正在寻找的事情,但这变成了巨大的痛苦。 我的意思是,如果我希望 Foo 访问 flag big,我必须执行以下操作

public class Foo implements Flags{
    final int size = Size.big;
}

这远非理想。我更愿意执行以下操作

public class Foo implements Flags{
    final int size = big;
}

最佳答案

为什么您不使用枚举来实现此行为?您应该为此使用枚举,因为这些是静态值 enum tutorial .

关于java - java中的嵌套接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43215483/

相关文章:

java - 如何避免在 RecyclerView 中使用 Reflection

实现相同接口(interface)的枚举上的Java开关

java - 在 Java 中转换接口(interface)

javascript - 从 Javascript 嵌套数组/数据结构中选择随机项

sql - 将嵌套的(两个)NOT IN 转换为嵌套的(两个)NOT Exists

python使用for循环更新嵌套字典值与理解

java - Axis2 不返回自己的对象

Java opencv inRange阈值函数使我的图像变成三个不同的图像?

java - Spring 获取 ServletContext 并将其作为 Bean 提供

delphi - 获取 IDispatch 接口(interface)成员的访问权限