gpt4 book ai didi

java - 将值添加到 vector 时抛出 NullPointerexception

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:02 24 4
gpt4 key购买 nike

我正在尝试以字符串形式初始化一个 vector ,该 vector 具有整数 1 到 n。

这是我对 vector 的声明。

 Vector<String> candidatesSet,frequentItemSet,mFCandidatesSet,mFSet = new <String>Vector();

我用来初始化的循环是

for(int i=0; i<crows; i++)
{
candidatesSet.add(Integer.toString(i+1));
}

这里我们在运行时获取变量crows的值。

但它在我向对象添加字符串的行中抛出 NullpointerException。

我尝试通过

将 vector 初始化为 null
 candidatesSet = null;

但是没用

最佳答案

首先,类似的东西是错误的:

Vector<String> set = new <String>Vector();

正确的语法是这样的:

Vector<String> set = new Vector<String>();

其次,如果你做这样的事情:

Vector<String> set1,set2,set3,set4,set5 = new Vector<String>();

...只有 set5 会被初始化。每个变量必须独立初始化。你可以做这样的事情:

Vector<String> set1,set2,set3,set4,set5;
set1 = set2 = set3 = set4 = set5 = new Vector<String>();

...但是所有变量都将指向相同的 Vector,并且对一个变量的修改会影响所有其他变量。您必须分别初始化每个变量。

第三,这样做:

candidatesSet = null;

...如果 candidatesSet 尚未初始化则什么都不做,因为非原始实例变量无论如何都被初始化为 null。那是你的问题,你在空对象上调用 .add(String),这会导致 NullPointerException

解决这些问题将使您的代码正常工作,但还有最后一个问题。 Vector 是一个有点过时的类,它已被 Java Collections API 取代。尝试使用 ArrayList而不是 Vector,像这样:

List<String> candidatesSet = new ArrayList<String>();

这将使您的代码更高效且不那么陈旧。

关于java - 将值添加到 vector 时抛出 NullPointerexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006676/

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