3

ジェネリックを具体化しました...どのように実装されていますか? C# のジェネリックとの大きな違いはありますか?

4

2 に答える 2

2

C# ジェネリックとの違い: ジェネリック クラスのさまざまなインスタンス化に対して、C# は実行時にクラスを生成します。Gosu はそうではありません: 1 つのジェネリック クラスは、実行時に使用される 1 つのクラスに対応します。型情報は、クラスではなくオブジェクト内に保持されます。したがって、C# はコードを特殊化できますが (プリミティブ型など)、Gosu はできません。たとえば、Gosu は int をオブジェクトにラップしてリストに入れる必要があります。

于 2010-11-23T12:56:17.310 に答える
1

最近 Gosu を見たばかりで、まだ実際のプログラムを実際に書いていません。私が言える最善のことは、具体化されたジェネリックとは、Gosu がジェネリック化されたオブジェクトの元の型を保持しているという事実を指しているということです。

Java では、ジェネリック関数に渡されたものの元の型が何であるかを調べるために、リフレクションに頼らない方法はありません。

ドキュメントのこのページの下部を見てください。実際にそれを行う方法については述べていませんが、それができるということだけです。

次の質問もご覧ください。

于 2010-11-10T19:15:53.573 に答える