x をこのように宣言するとint[] x
、x
はオブジェクトになりますね。int[]
クラスとはどういう意味ですか?
そのクラスを拡張できますか (さまざまな理由で)? 私は試した
class Foo extends int[]
{
}
しかし、それはうまくいきません。何か案が?
ありがとう
Java では配列を拡張できません。これらは、オブジェクト (メソッド/フィールドなどを持つ) に多少似た動作をするこれらの奇妙な疑似クラスのものですが、実際にはそうではありません。カスタム配列を作成しようとしている場合は、Collections API を見ましたか? これには、かなり便利な ArrayLists (可変長の配列) などが含まれます。
編集:配列が必要な場合は、すべてのコレクションにある「toArray()」メソッドを使用します。
Java では int[] やその他の配列を拡張することはできません。オブジェクトですが、Javaの通常のクラスのように拡張できるものではありません。
int はプリミティブであり、int[] を使用して int の配列を作成します
JComponent はクラスであり、JComponent[] を使用して JComponents の配列を作成します
変数宣言の末尾に [] を追加するだけで、JComponent クラスまたはその他の非 final クラスを拡張し、それらの配列を作成できます。
class Foobar { .... }
Foobar foobar = new Foobar();
Foobar[] foobarArray = new Foobar[10]; // size 10
class BiggerFoobar extends Foobar {...}
BiggerFoobar[] biggerFoobarArray = new BiggerFoobar[5];
Anint[]
は実際には配列です。それ自体はオブジェクトではなく、同じ型の多くの値を保持でき、インデックスに基づいてそれらにすばやくアクセスできる変数です。
面白いことに、Oracle のドキュメントでは、配列 (変数カテゴリの下にあります) を次のように説明しています。
配列は、1 つの型の固定数の値を保持するコンテナー オブジェクトです。配列の長さは、配列の作成時に確立されます。作成後、その長さは固定されます。「Hello World!」のメイン メソッドで、配列の例を既に見ました。応用。このセクションでは、配列について詳しく説明します。
int[]
これは実際のクラス型ではないため、拡張する手段がありません。本当にこれを行う必要がある場合は、List
インターフェイスを実装する任意のオブジェクトを拡張するか (ArrayList
たとえば) List
、カスタム オブジェクトを使用してインターフェイスを自分で実装することができます。
コレクションを配列に変換したい場合は、次のようにしてみてください。
List<Integer> intList = new ArrayList<Integer>();
//Operate with your list
Integer[] arr = intList.toArray(new Integer[intList.size()]);
int はオブジェクトではなくデータ型です。整数はオブジェクトですが、最終的なものであるため、それを拡張することはできません。
正確に何をしようとしているのかを再考する必要があると思います。おそらく別の方法があります。