Java 泛型与 C# 其中关键字

本文关键字:关键字 泛型 Java | 更新日期: 2023-09-27 18:35:24

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

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

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

Java 泛型与 C# 其中关键字

这是一篇非常好的文章。

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

从那个来源

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

TypeParameter ListOfConstraints 

其中ListOfConstraints是其中一个的"&"分隔列表 以下约束:

  • 在泛型上指定基类或实现的接口 使用以下方法键入参数:扩展 BaseOrInterfaceType

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

下面是一个例子

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

在此示例中,"数字"和"可比较"是约束,因为它们将显示在 C# 类声明的 where 子句中。