私は、他の場所のコードでは、このようなことを行うことができることを、このようなJavaクラスREFを宣言できるようにしたいと思います:Javaで定数階層データ構造を宣言するには?
switch (v)
{
case Ref.LicenseCode: ....;
case Ref.Widget.MaxWeight: ....;
case Ref.Widget.MolyBolt.ThreadsPerInch: ....;
}
REFは、一定の階層的な集合を表す定数データ構造であることを意図しています値は、標準文書やその他の参照資料によく現れることがあります。本当に一定の値が必要です(ケースステートメントで使用できます)。
私はクラス定義を入れ子にすることでこれを行うことができると思っていました。たとえば、この:私がダウンして第3レベルに巣にしようとすると、
switch (v)
{
case Ref.LicenseCode: ....;
case Ref.Widget.MaxWeight: ....;
}
しかし:
public final class Ref
{
public final static int LicenseCode = 800;
public final class Widget
{
public final static int MaxWeight = 5000;
public final class MolyBolt
{
public final static int ThreadsPerInch = 12;
}
}
}
私がいることを聞いています:
をpublic final class Ref
{
public final static int LicenseCode = 800;
public final class Widget
{
public final static int MaxWeight = 5000;
}
}
は私がこれを書くことができます
"Ref.Widget.MolyBolt cannot be resolved or is not a field."
私は何か間違っていますか?それとも、私はJavaのエッジの1つにぶつかったのですか?私の目標を達成するための他の方法がありますか?私はWindows Vista、JCK 1.6.0-21の下でEclipse Java Development Tools 3.5.2.r352を使用しています。
MolyBoltはフィールドではありません。それはクラスです。あなたは "Ref.Widget.MolyBolt.ThreadsPerInch"を意味しましたか? – rfeak
申し訳ありませんが、Ref.Widget.MolyBolt.ThreadsPerInchを参照しようとしましたが、結果のエラーは "Ref.Widget.MolyBoltを解決できないか、フィールドではありませんでした"でした。 –
これらの奇妙な定数、LicenceCodesとWeightsなどは、まあまあまあの例です。私はもっと理にかなっているが、それはかなり秘密だということを心に留めている。より現実的な例は、惑星や衛星のすべてを含む、太陽系に関する一定の値の表であるかもしれません。私が書くことができる場合: ケースSolar.Sun.Weight:....; ケースSolar.Mars.Deimos.Weight:....; 私はおそらく私が必要とするすべてを行うことができました。 –