我在 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
以下约束之一的“&”分隔列表在哪里:
- 使用以下方法在通用类型参数上指定基类或实现的接口: extends BaseOrInterfaceType
(必须使用 '&' 代替 ',' 因为 ',' 分隔每个泛型类型参数。)
这是一个例子
class GenericClass<T extends Number & Comparable<T>> {
void print (T t) {
System.out.println (t.intValue ()); // OK
}
}
在此示例中,Number 和 Comparable 是约束,因为它们将出现在 C# 类声明的 where 子句中。