Я использую интерфейс для «Флагов» в классе. Назовем это
public interface Flags
Я хочу иметь возможность реализовать интерфейс Flags с объектом и наследовать все вложенные флаги, которые я в него поместил. Пример
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{}
и иметь доступ ко всем подфлагам (т. е. левому, правому, большому, маленькому, флагу1).
Но я также хочу, чтобы Foo1 реализовывал размер и имел доступ только к флагам размера
public class Foo1 implements Flags.Size{}
Я нашел это. Можем ли мы определить интерфейс внутри интерфейса? который показывает, что вложенные интерфейсы возможны, но я не уверен, как это сделать так, как я ищу.
Я пытался просто делать то, что ищу, и это становится огромной болью.
Я имею в виду, что если бы я хотел, чтобы Foo получил доступ к большому флагу, мне пришлось бы сделать следующее:
public class Foo implements Flags{
final int size = Size.big;
}
Это далеко от идеала. Я бы предпочел сделать следующее
public class Foo implements Flags{
final int size = big;
}
Подробнее здесь: https://stackoverflow.com/questions/432 ... es-in-java