gpt4 book ai didi

java - 如何创建新的 AnyType 数组

转载 作者:行者123 更新时间:2023-12-01 10:14:57 24 4
gpt4 key购买 nike

我正在使用答案 How do I create a new AnyType[] array? 中的代码。我的问题是如何初始化这个数组。当我尝试运行此代码时,我在 Clear() 上遇到空指针异常,我认为这是由于使用了 theItems.getClass 因为 theItems 尚未声明。

public class Whatever<AnyType extends Comparable<? super AnyType>>  extends AbstractCollection<AnyType> implements List<AnyType> {

private static final int DEFAULT_CAPACITY = 10;
private static final int NOT_FOUND = -1;

private AnyType[] theItems;
private int theSize;
private int modCount = 0;


public Whatever() {
clear();
}

/**
* Change the size of this collection to zero.
*/
public void clear() {
theSize = 0;
theItems = (AnyType[]) java.lang.reflect.Array.newInstance(theItems.getClass().getComponentType(), DEFAULT_CAPACITY);
modCount++;
}
}

最佳答案

所以我找到了两种方法可以实现这一目标。第一个,使用上面 jack 的评论,看起来像:

public static <T> T[] alloc(int length, T ... base) {
return Arrays.copyOf( base, length );
}

然后可以这样调用:

theItems = ClassName.alloc(DEFAULT_CAPACITY);

我最终使用的方式可以使用,因为我实现了类似的:

theItems = (AnyType []) new Comparable[ DEFAULT_CAPACITY ];

关于java - 如何创建新的 AnyType 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35953498/

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