5

for命令を使用してインターフェイスで配列を初期化することは可能ですか?

4

5 に答える 5

6

簡単な質問 - インターフェイスで配列を初期化することは可能ですか?

はい。

これは機能しますが、「for」命令で配列を初期化したいです。助けてくれてありがとう

それは簡単な質問ではありません;)

インターフェイスに静的ブロックを追加できないため、これを厳密に行うことはできません。classただし、ネストされたorを持つことができますenum

私見、それは次のように有用というよりも混乱を招く可能性があります。

public interface I {
    int[] values = Init.getValue();

    enum Init {;
        static int[] getValue() {
            int[] arr = new int[5];
            for(int i=0;i<arr.length;i++)
                arr[i] = i * i;
            return arr;
        }
    }
}
于 2012-08-14T08:28:52.350 に答える
4

試してみませんか?

public interface Example {
    int[] values = { 2, 3, 5, 7, 11 };
}
于 2012-08-14T08:05:52.547 に答える
2

はい。ただし、静的な場合のみです。実際、インターフェイスで宣言された変数はすべて自動的に静的になります。

public interface ITest {
    public static String[] test = {"1", "2"}; // this is ok
    public String[] test2 = {"1", "2"}; // also ok, but will be silently converted to static by the compiler
}

ただし、静的初期化子を持つことはできません。

public interface ITest {
    public static String[] test;
    static {
        // this is not OK. No static initializers allowed in interfaces.
    }
}

明らかに、インターフェイスにコンストラクターを含めることはできません。

于 2012-08-14T08:11:54.027 に答える
2

はい、可能です。コードを参照してください。

public interface Test {
  int[] a= {1,2,3};
}

public class Main {
  public static void main(String[] args) {

    int i1 = Test.a[0];
    System.out.println(i1);
  }
}
于 2012-08-14T08:17:01.087 に答える
1

まず、既存の回答に同意しました。

さらに、インターフェイスでデータを定義するのは良い考えではないと思います。「有効な Java」を参照してください。

項目 19: 型を定義するためだけにインターフェイスを使用する

定数インターフェイス パターンは、インターフェイスの不適切な使用です。

インターフェイスで定数をエクスポートするのは悪い考えです。

于 2012-08-14T09:02:43.233 に答える