사용자 정의 기록장에서 컬렉션 정의
문제
일부 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'을 얻는 오류입니다.
해결책
i.e와 같이 컬렉션을 초기화해야합니다.
following=new ArrayList<IntWritable>();
.
방금 다음 트윗을 선언하지만 초기화되지 않았습니다.
다른 팁
IT를 사용하기 전에 멤버를 초기화합니다.귀하의 경우 에이 작업을 수행하십시오
ArrayList<IntWritable> following = new ArrayList<IntWritable>();
ArrayList<Text> tweets= new ArrayList<Text>;
. 제휴하지 않습니다 StackOverflow