我试图在构造函数中使用可变长度参数,但是我得到错误消息:
'不兼容的类型字符串无法转换为int'
非法开始运作,';'预期
public class Personnel {
private String pname;
private String rank;
private String certs [];
public static int totalPersonnel = 0;
public Personnel(String name, String rank, String... certs) {
this.pname = name;
this.rank = rank;
this.certs = certs;
incrPersonnel();
}
public static void incrPersonnel(){
totalPersonnel++;
}
public static void main(String myArgs[]){
Personnel Alex = new Personnel ("Alex", "CPT", ["none"] );
}
}
答案 0 :(得分:3)
如果您尝试传递数组,那么您使用的方式不正确,而您必须使用new String[]{"none"}
,因此您的代码应如下所示:
public static void main(String myArgs[]) {
Personnel Alex = new Personnel("Alex", "CPT", new String[]{"none"});
}
或者您也可以使用:
public static void main(String myArgs[]) {
Personnel Alex = new Personnel("Alex", "CPT", "val1", "val2", "val3");
//--------------------------------------------[_____________________]
}
但是在你的情况下你只传递一个值,所以你不必使用new String[]{..}
,你需要像这样传递它:
Personnel Alex = new Personnel("Alex", "CPT", "none");
如果您不想传递任何价值,那么您不需要指定它,您只需传递第一个和第二个值,如:
Personnel Alex = new Personnel("Alex", "CPT");
//------------------------------------------^____no need to pass
它将为数组返回empty