nullpoint错 为什么呀

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:36:51
package com.xzy;

import java.util.Random;

public class GenerateFavor {
private String[] favors ={"数学","语文","外语","计算机","无线电","历史"};
Random random = new Random();

String[] fa ;
public String[] favorOfStudent(){

do{
int count;
count = random.nextInt(favors.length);

for(int i=0;i<count;i++){
fa[i] = favors[random.nextInt(favors.length)];

}
}while(hasDuplicatedItem(fa));

return fa;
}

//判断数组内字符串是否相等。
public boolean hasDuplicatedItem(String[] fa){
for(int i=0;i<fa.length-1;i++){
for(int j=i+1;j<fa.length;j++){
if(fa[i].equals(fa[j])){
return true;
}
}
}
return false;
}

p

你的fa没有初始化
String[] fa;

import java.util.Random;

public class GenerateFavor {
private String[] favors = { "数学", "语文", "外语", "计算机", "无线电", "历史" };
Random random = new Random();

String[] fa;

public String[] favorOfStudent() {

do {
int count;
count = random.nextInt(favors.length);
System.out.println(count);
fa=new String[count];//在这里初始化一下就可以了
for (int i = 0; i < count; i++) {
fa[i] = favors[random.nextInt(favors.length)];

}
} while (hasDuplicatedItem(fa));

return fa;
}

// 判断数组内字符串是否相等。
public boolean hasDuplicatedItem(String[] fa) {
for (int i = 0; i < fa.length - 1; i++) {
for (int j = i + 1; j < fa.length; j++) {
if (fa[i].equals(fa[j])) {
return true;
}
}
}
return false;