我现在正在努力弄清楚为什么在尝试测试时我无法对构造函数输入任何兴趣,并收到String无法转换为String []的错误。如果你能确定我出错的地方,那将对我有很大的帮助。
public class ProfileMain {
public static void main(String[] args) {
Profile profile1;
profile1 = new Profile("name" , "town" , "country", "nationality", "dateOfBirth", "socks" );
System.out.println(profile1.toString());
}
}
public Profile (String name, String town, String country, String nationality, String dateOfBirth, String [] interests) {
this.name = name;
this.town = town;
this.country = country;
this.nationality = nationality;
this.dateOfBirth = dateOfBirth;
this.interests = interests;
}
答案 0 :(得分:1)
String[]
和String
是两回事。
String[]
是String
个实例的数组,String
是String
类的实例,定义为String str="hello"
1.两个构造函数和new运算符应该具有相同的类型。 如果兴趣是最后一个字段可以多次出现,则可以使用var arg。
public class Profile {
private String name;
private String town;
private String country;
private String nationality;
private String dateOfBirth;
private String[] interests;
Profile (String name, String town, String country, String nationality, String dateOfBirth, String ... interests) {
this.name = name;
this.town = town;
this.country = country;
this.nationality = nationality;
this.dateOfBirth = dateOfBirth;
this.interests = interests;
}
}
答案 1 :(得分:0)
在[]
构造函数中的interests
之后添加Profile
,例如
public Profile (String name, String town, String country, String nationality,
String dateOfBirth, String interests[]) { // --> here
String
和String[]
不是一回事。当你这样做
this.interests = interests;
this.interest
是String[]
,interest
是String
。因此,错误。
但是,您将socks
作为interest
传递,这是String
而不是String[]
。如果您只需要一个兴趣,请将String interests []=new String [10];
改为String interest
。
但是,如果您需要多个兴趣,则传递数组,而不是"socks"