は私があなたの代わりにこれを使用するためのものだと思う:
public Class Settings
{
public static final String WelcomeMessage= "helloworld";
public static final String ByeMessage= "yo";
public static String[] widgets = {WelcomeMessage,ByeMessage};
}
しかし、これは良いです:
public Class Settings
{
public static String[] widgets = {"WelcomeMessage","ByeMessage"};
}
そして、そう、あなたがSettings.widgets[0]
経由WelcomeMessage
にアクセスすることができます。
編集:もちろん - あなたは名前でアクセスすることはできず、配列にのみインデックスすることはできません。
編集2:あなたは、フィールドが保護されたか、プライベートにと「ゲッター」メソッドを提供する場合、それはそれらが実装されている方法をすべてのユーザークラスには関係ありません:
public Class Settings
{
private static final String welcomeMessage= "helloworld";
private static final String byeMessage= "yo";
public static String getWelcomeMessage()
{
return welcomeMessage;
}
public static String getByeMessage()
{
return byeMessage;
}
}
コンパイラからの警告メッセージ/エラーメッセージは何ですか?これらの3つの内容は関連していないことに注意してください。名前と値が異なります。 "WelcomeMessage"は静的フィールドへの参照ではなく、単に "WelcomeMessage"という文字列です。 –
本当ですか?私はどんな重複変数も見ません。 – dogbane
あなたのコードでは、 'Settings.WelcomeMessage'は「helloworld」ですが、' Settings.widgets [0] 'は「WelcomeMessage」です。彼らは同じではありません。ウィジェット配列に二重引用符を付けるつもりはなかったでしょうか? – MAK