-2

簡単な列挙型を作成しました

public interface Params
{
  public enum Locale 
  {
      UK("UK"), US("US");
      private String value;

      private Locale(String value) {
              this.value = value;
      }
  }; 

....

Params.Locale 属性を取得するように変更したいメソッドを次に示します。

    public void doErrorQuery(Locale locale, String p_listStr)
    {
        if (p_spellingList == null)
        {
        result.setError(true);
        result.setErrorMessage("Null spelling list");
        return;
    }

Locale enum を使用してインポートします

import com.Params.Locale;

問題は、これをコンパイルできないことです。ロケールを解決できないと言っています。Params.Locale を使用しても機能せず、名前を解決できません。

4

2 に答える 2

0

列挙型には独自の列挙型クラスを使用する必要があります。これを行うと、私の目にはよりクリーンなデザインになります。

public enum Locale {
   UK("UK"), US("US");
   private String value;

   private Locale(String value) {
       this.value = value;
   }
}
于 2012-12-05T09:03:59.120 に答える
0

設計上の問題を一瞬無視しても、元のコードには何の問題もありません。パッケージの宣言を間違えたのではないでしょうか? 私にとって、次のコードは問題なくコンパイルされます。

Params.java

package com;

public interface Params {

  public enum Locale {
    UK("UK"), US("US");
    private String value;

    private Locale(String value) {
      this.value = value;
    }
  }
}

TestClass.java

package com;

import com.Params.Locale;

public class TestClass {

  public void test(Locale locale) {
    System.out.println("Hello, World!");
  }
}
于 2012-12-05T09:09:14.727 に答える