Прямо сейчас у меня есть два Enum
s, которые должны иметь только синхронизированные значения, и они присутствуют в отдельных проектах. Мне нужно найти способ захватить значения из одного enum (Enum1
) и импортировать их в (Enum2
).Импорт значений из одного Enum в другой?
Enum1.java
Что выглядит следующим образом:
package com.example.hello;
import com.example.foo.SomeClass;
public enum Enum1 {
A(1), B(2), C(3), D(4);
integer i;
Enum1(int ii) {
this.i = ii;
}
public static int getValue(Enum1 e) {
return e.i;
}
public int doSomething() {
return SomeClass.doThings(i);
}
}
Между тем, Enum2.java
(в другом проекте) в настоящее время выглядит следующим образом:
package com.example.world;
import com.example.bar.SomeOtherClass;
import static com.example.hello.Enum1.*;
public enum Enum2 {
// Enums *should* be imported from Enum1
integer i;
Enum2(int ii) {
this.i = ii;
}
public int doSomethingElse() {
return SomeOtherClass.doSomethingElse(i);
}
}
Конечно, это не работает, потому что значения не переносятся через промежуток.
Те же рассуждения должны были бы использовать Enum1
в моем коде, но функции в Enums между двумя проектами должны быть совершенно разными.
Является ли то, что я пытаюсь сделать, даже возможно? Если да, то как я могу это сделать (относительно разумно)?
Для контекста эти две программы используют эти перечисления для модели разрешения. Система проверяет, находится ли пользователь на уровне или выше минимально необходимого уровня разрешений, который может быть чем-то вроде Enum1.B
. Проблема в том, что Enum1
зависит от класса, который я не могу импортировать в проект, который содержит Enum2
, потому что это было бы полным отходом, чтобы связать зависимость Java с проектом Enum2
, особенно если этот проект никогда не будет реалистично использоваться для любая причина.
В конце концов, мы перейдем к более разумной модели разрешения, где вся эта система будет ненужной, но нам нужно что-то работать в то же время, отсюда необходимость решения (или абсолютно грязного взлома) что-то вроде того, чтобы заставить его работать.
Вам нужно будет предоставить больше контекста. Приведите конкретный пример, к чему мы можем относиться. Как и сейчас, ответ «нет, это невозможно». С контекстом мы могли бы показать вам альтернативы ... – blubb
Можно ли включить Enum1 в проект, от которого зависят как project1, так и project2? –
@PaulHicks Не совсем, потому что такого проекта не существует. Хотя я мог (и, вероятно, должен был) сделать это, я бы хотел избежать дальнейшего усложнения этого проекта. –