4

我在 C# 项目中有一个方法,看起来像这样

public T AddEC<T>() where T : EntityComponent, new() {
    if (!HasEC<T>())
    {
      T nComponent = new T();
    }
}

现在我最近才开始正确使用 Java 泛型,但我不知道如何移植这样的方法,或者由于语言限制甚至可能,任何人都可以帮忙吗?

4

2 回答 2

2

这是一个非常不错的文章。

http://www.jprl.com/Blog/archive/development/2007/Aug-31.html

从那个来源

Java 类型和方法约束是在声明泛型类型参数的“<”和“>”中使用“迷你表达式语言”指定的。对于每个具有约束的类型参数,语法为:

TypeParameter ListOfConstraints 

ListOfConstraints以下约束之一的“&”分隔列表在哪里:

  • 使用以下方法在通用类型参数上指定基类或实现的接口: extends BaseOrInterfaceType

(必须使用 '&' 代替 ',' 因为 ',' 分隔每个泛型类型参数。)

于 2012-05-25T12:01:38.223 回答
2

这是一个例子

class GenericClass<T extends Number & Comparable<T>> {
    void print (T t) {
        System.out.println (t.intValue ()); // OK
    }
}

在此示例中,Number 和 Comparable 是约束,因为它们将出现在 C# 类声明的 where 子句中。

于 2012-05-25T12:05:45.180 回答