(20)Class引数をコンストラクタに渡す必要はありません。array;}しかし、私は実際に何が起こっているのか分からない。8では、ラムダまたはメソッド参照を使用して、一種の汎用配列作成を行うことができます。Classを渡す)と似ていますが、ここではリフレクションを使用していません。Stream.toArray(IntFunction<A[]>)によって使用されます。8より前でも実行できますが、もっと面倒です。Object配列を作成し、それをどこにでもEにキャストすることができます。うん、それはそれを行うには非常にクリーンな方法ではないが、少なくとも動作する必要があります。あなたが投稿した例で何が起こっているのかという質問に誰も答えなかった。array;}他の人が言っているように、ジェネリック医薬品は編集中に「消去」されます。したがって、実行時にジェネリックのインスタンスはそのコンポーネントタイプが何であるかを知らない。この理由は歴史的なもので、Sunは既存のインターフェース(ソースとバイナリの両方)を壊さずにジェネリックを追加したかったからです。配列は実行時にそのコンポーネントの型を知っています。この例では、コンストラクタ(型を知っている)を呼び出すコードに、クラスに必要な型を伝えるパラメータを渡すことによって問題を回避します。したがって、アプリケーションは、クラスを次のようなもので構築します。Stack<foo>(foo.class,50)コンストラクタはコンポーネントタイプが何であるかを(実行時に)知るようになり、リフレクションAPIを介して配列を構築するためにその情報を使用することができます。capacity);最後に、コンパイラーはArray#newInstance()によって返されたArray#newInstance()が正しい型(わかっていてもArray#newInstance()であることを知る方法がないので、型キャストがあります。このスタイルは少し醜いですが、何らかの理由(配列の作成、コンポーネントタイプのインスタンスの作成など)のために、実行時にコンポーネントタイプを知る必要があるジェネリックタイプを作成する上で、最も悪い解決策ではないことがあります。実効Javaでジェネリックコレクションを実装するために推奨される方法の1つです。型エラーはなく、配列を繰り返しキャストする必要はありません。これは潜在的に危険であり、慎重に使用する必要があるため警告が表示されます。コメントで詳述されているように、このObject[]はE[]型として偽装されており、予期せぬエラーや安全でない場合はClassCastExceptionが発生する可能性がありClassCastException。経験則として、この動作は、キャスト配列が内部的に(たとえばデータ構造を後退させるために)使用され、クライアントコードに返されたり公開されたりしない限り、安全です。ジェネリック型の配列を他のコードに戻す必要がある場合は、言及したArrayクラスが適切な方法です。可能であれば、ジェネリックを使用している場合は、配列ではなくList作業するほうがずっと楽しいでしょう。確かに選択肢がない場合もありますが、コレクションフレームワークの使用ははるかに堅牢です。}}このコードスニペットを使って、単純な自動テストユーティリティのために渡されるクラスを具体的にインスタンス化しました。}配列の開始のためにArray.newInstance(配列のクラス、配列のサイズ)。クラスはプリミティブ(int.class)とオブジェクト(Integer.class)の両方になります。BeanUtilsはSpringの一部です。この例では、Javaリフレクションを使用して配列を作成しています。これを行うには、型保証されていないので、一般的にはお勧めしません。代わりに、内部リストを使用して配列をまったく使用しないでください。...で説明しています。あなたのコードは動作しますが、チェックされていない警告が生成されます(次の注釈でこれを抑制することができます:@SuppressWarnings({"unchecked"})ただし、配列の代わりにリストを使用する方がよいでしょう。OpenJDKプロジェクトサイトのこのバグ/機能に関する興味深い議論があります。length);}こんにちはスレッドが死んでいますが、私はあなたの注意を引くことを望みます:Genericsは、コンパイル時の型チェックに使用されます。したがって、目的は何が必要なのかをチェックすることです。あなたが返すのは、消費者が必要とするものです。これをチェックして:ジェネリッククラスを書くときに、型キャストの警告を心配しないでください。あなたがそれを使用しているときに心配。"ホルダー"クラスをネストし、それを使ってデータを保持することです。}}他の人によって提案された強制的なキャストは、私のために働かず、違法なキャスティングを除いて投げた。Item[SIZE];ここで、Itemはメンバを含む定義済みのクラスです。value;このようにして、タイプKの配列(アイテムに値がある場合)またはクラスItemに定義する任意のジェネリックタイプを取得します。GenSetインスタンスを宣言するどのような型でも、その型の配列にaを代入しaからその型の変数に要素を割り当てることができます。これは配列と配列の値が正しい型であることを意味します。Javaチュートリアルで説明したように、クラスリテラルを実行時型トークンとして使用して動作します。java.lang.Classインスタンスとしてコンパイラによって処理されjava.lang.Class。.classを持つクラスの名前に従います。String.classはクラスString表すClassオブジェクトとして機能します。String.classの型がClass<String>であることを意味します。GenSetなど)の配列を表す最初の引数のクラスリテラルをGenSetます。プリミティブは型変数に使用できないため、プリミティブの配列を取得することはできません。コンストラクタ内で、メソッドcast呼び出すと、渡されたObject引数のキャストが、メソッドが呼び出されたClassオブジェクトによって表されるクラスに返されます。int指定された長さの配列が2番目の引数として渡されます。その最後の文は完全に正確ではありません。Class<?>であり、次のようなことはできません。compileClassオブジェクトを返すClass内のすべてのメソッドについても同じです。T[]へのキャストを使用する例では、コンパイラが型の安全を保証できないため警告が表示されます。Tuple[10];実際には簡単な方法は、オブジェクトの配列を作成し、次の例のように目的の型にキャストすることです。Tは型識別子である私は、私のために働く、すばやく簡単な方法を見つけました。8でこれを使用していることに注意してください。以前のバージョンでも動作するかどうかはわかりません。特定の型パラメータのジェネリック配列をインスタンス化することはできませんが、すでに作成された配列をジェネリッククラスコンストラクタに渡すことができます。}}配列の柔軟性を高めるために、リンクされたリストを使用することができます。ArrayListおよびJava.util.ArrayListクラスにあるその他のメソッド私はこの問題の解決策のようなものを見つけました。List<Person>を別のクラスにカプセル化すると、それは機能します。}}PersonListクラスのメンバーをゲッターを介して公開することができます。下の行は、すべての要素にList<Person>を持つ配列を与えます。List<Person>配列です。PersonList[10];私が取り組んでいるいくつかのコードでは、このようなものが必要でした。これが動作するようにしたのです。これまでのところ問題はありません。each?JavaScriptの配列全体に?ソートされた配列をソートされていない配列よりも処理する方が速いのはなぜですか?日本語Top。