gpt4 book ai didi

Java 相当于 C# 泛型数组声明?

转载 作者:行者123 更新时间:2023-12-02 11:31:28 24 4
gpt4 key购买 nike

我有一个通用类,我想将其从 C# 转换为 Java。类(class)是这样开始的:

   public class StackImplementationUsingDynamicArray<T>
{
private T[] _array = new T[10];
}

我似乎无法获得该声明的等效 Java 代码。此代码至少可以编译(带有警告),但会引发运行时异常:

   public class StackImplementationUsingDynamicArray<T>
{
private T[] _array = (T[])Array.newInstance (StackImplementationUsingDynamicArray.class, 10);
}

用Java可以做到这一点吗?代码应该是什么?预先感谢您的任何指点。

最佳答案

是的 - 但你需要将实际类型的类对象传递给类的构造函数:

public class StackImplementationUsingDynamicArray<T>
{
private T[] _array;
public StackImplementationUsingDynamicArray(Class<T> clazz) {
_array = (T[]) Array.newInstance(clazz, 10);
}

然后您可以像这样使用:

StackImplementationUsingDynamicArray<String> a =
new StackImplementationUsingDynamicArray<>(String.class);

关于Java 相当于 C# 泛型数组声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268532/

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