[英]Refer enum inside an enum
如果,
enum Things{
UNIQUE_THING,
NON_UNIQUE_THINGS; // Need to specify what n0n-unique things as a separate enum
}
enum NonUniqueThings {
THING_1,
THING_2;
}
有什么方法可以僅引用一個枚舉Things
並在其中指定NonUniqueThings
的行為嗎? 我的意思是,來電者可以撥打-
Things.UNIQUE_THING
要么
Things.NON_UNIQUE_THING.THING_1
有什么想法嗎?
您可以為包含一些NonUniqueThings
值的Things
引入可為空的參數。 當然,為了獲取NonUniqueThings
值,您必須提供Things
的構造函數以及param的getter。
請注意,我假設UNIQUE_THING
不會綁定到某些NonUniqueThing
,這就是為什么使用null
作為參數實例化的原因。
enum Things{
UNIQUE_THING(null),
NON_UNIQUE_THINGS(NonUniqueThings.THING_1);
NonUniqueThings param;
Things(NonUniqueThings param) {
this.param = param;
}
public NonUniqueThing getNonUniqueThing() {
return param;
}
}
然后,您可以獲取綁定到每個Things
值的NonUniqueThings
值,如下所示:
NonUniqueThings nonUniqueThing = Things.NON_UNIQUE_THING.getNonUniqueThing();
這樣的東西? 沒有真正好的解決方案,它應該工作。
enum Things {
UNIQUE_THING,
NON_UNIQUE_THING(
NonUniqueThings.A,
NonUniqueThings.C);
public final Child[] childs;
private Things() {
this.childs = null;
}
private Things(Child... childs) {
this.childs = childs;
}
}
interface Child {
//
}
enum NonUniqueThings implements Child {
A,
B,
C;
}
您可以去這里(如果我正確理解了您的需求):
public enum Things {
UNIQUE_THING, NON_UNIQUE_THINGS;
public enum NonUniqueThings {
THING_1, THING_2;
}
}
可以像這樣訪問:
Things.NonUniqueThings.THING_1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.