私はこのようなC#プロジェクトにメソッドを持っています
public T AddEC<T>() where T : EntityComponent, new() {
if (!HasEC<T>())
{
T nComponent = new T();
}
}
最近、Javaジェネリックを適切に使用し始めたばかりですが、このようなメソッドをどのように移植するか、または言語の制約により可能であるかどうかはわかりません。誰か助けてもらえますか?
これはとても良い記事です。
http://www.jprl.com/Blog/archive/development/2007/Aug-31.html
そのソースから
Java の型とメソッドの制約は、ジェネリック型パラメーターを宣言する '<' と '>' 内で "ミニ式言語" を使用して指定されます。制約を持つ各型パラメーターの構文は次のとおりです。
TypeParameter ListOfConstraints
ListOfConstraints
次の制約の 1 つを「&」で区切ったリストです。
- 以下を使用して、ジェネリック型引数で基本クラスまたは実装されたインターフェイスを指定する: extends BaseOrInterfaceType
(「,」の代わりに「&」を使用する必要があります。これは、「,」が各ジェネリック型パラメーターを区切るためです。)
ここに例があります
class GenericClass<T extends Number & Comparable<T>> {
void print (T t) {
System.out.println (t.intValue ()); // OK
}
}
この例の Number と Comparable は、C# クラス宣言の where 句に表示される制約です。