gpt4 book ai didi

java - 在自定义可写对象中定义集合

转载 作者:行者123 更新时间:2023-12-02 21:48:35 27 4
gpt4 key购买 nike

我正在编写一个自定义可写类,其中包含一些Java集合。谁能告诉我我的实现方式有何错误
我在构造函数中传递了两个Java集合

public class details implements Writable {
IntWritable id;
Text username;
ArrayList<IntWritable> following;
ArrayList<Text> tweets;

public details (int id, String u, ArrayList<Integer> f, ArrayList<String> t){
this.id = new IntWritable(id);
this.username = new Text(u);
int i = 0;
while(i<f.size()){
this.following.add(new IntWritable(f.get(i)));
i++;
}
i = 0;
while(i<t.size()){
this.tweets.add(new Text(t.get(i)));
i++;
}
}
@Override
public void readFields(DataInput in) throws IOException {
// TODO Auto-generated method stub
id.readFields(in);
username.readFields(in);
int size=in.readInt();
for(int i=0;i<size;i++){
IntWritable temp = new IntWritable();
temp.readFields(in);
following.add(temp);
}
size=in.readInt();
for(int i=0;i<size;i++){
Text temp = new Text();
temp.readFields(in);
tweets.add(temp);
}
}

@Override
public void write(DataOutput out) throws IOException {
// TODO Auto-generated method stub
id.write(out);
username.write(out);
out.writeInt(following.size());
for(IntWritable s : following){
s.write(out);
}
out.writeInt(tweets.size());
for(Text s : tweets){
s.write(out);
}
}

}

这是我得到'java.lang.nullpointerException'的错误

最佳答案

您必须像使用它之前先初始化集合。

following=new ArrayList<IntWritable>();

您只需要声明关注和鸣叫,但不对其进行初始化。

关于java - 在自定义可写对象中定义集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23054188/

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