gpt4 book ai didi

c# - Java 继承约束

转载 作者:行者123 更新时间:2023-11-30 19:43:59 25 4
gpt4 key购买 nike

我正在尝试将我用 C# 编写的一些代码移植到 Java,但尚不了解所有 Java 语法。我也不知道这种东西叫什么,所以很难搜索..我称之为“继承约束”。

基本上,是否有与此 C# 代码等效的 java:

public abstract class MyObj<T> where T : MyObj<T>, new()
{

}

谢谢。


编辑:

有没有办法做到这一点:

public abstract class MyObj<T extends MyObj<T>> {
public abstract String GetName();

public virtual void Test() {
T t = new T(); // Somehow instantiate T to call GetName()?
String name = t.GetName();
}
}

最佳答案

不完全是。有这个:

public abstract class MyObj<T extends MyObj<T>>

但没有等同于 new() 的东西约束条件。

编辑:创建 T 的实例, 你需要合适的 Class<T> - 否则键入删除 会咬你。

通常您会将其添加为构造函数参数:

public MyObj(Class<T> clazz) {
// This can throw all kinds of things, which you need to catch here or
// propagate.
T t = clazz.newInstance();
}

关于c# - Java 继承约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13459773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com