for
命令を使用してインターフェイスで配列を初期化することは可能ですか?
質問する
2293 次
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 に答える