[英]Cannot invoke contains(int) on the primitive type int
我遇到了案例 4 的問題。我正在嘗試使用 ID 查找選民。 它是公開的,它說Cannot invoke contains(int) on the primitive type int
。 這是為什么? Id 實際上是公開的,但我不知道問題所在。
我要做的就是找到選民的身份。
public class Voters {
public static HashSet<Voter> voters = new HashSet<>();
public static void main(String[] args) throws IOException {
while (true) {
System.out.println("1. Add New Voter");
System.out.println("2. List All Voters");
System.out.println("3. Find a Voter By Name");
System.out.println("4. Get information about specific voter");
System.out.println("5. Exit");
Scanner scanner = new Scanner(System.in);
int chosen = scanner.nextInt();
switch (chosen) {
case 1:
System.out.print("National ID Number: ");
int idNum = scanner.nextInt();
System.out.print("\nName: ");
String name = scanner.next();
System.out.print("\nMale Relative: ");
String maleRelative = scanner.next();
System.out.print("\nAge: ");
int age = scanner.nextInt();
System.out.print("\nAddress: ");
String address = scanner.next();
System.out.print("\nProvince: ");
String province = scanner.next();
System.out.println("");
Voter voter = new Voter(idNum, name, maleRelative, age, address, province);
voters.add(voter);
FileWriter fileWriter = new FileWriter("C:\\Users\\YourPcName\\Desktop\\voters.txt");
fileWriter.append("\n").append(voter.toString());
fileWriter.flush();
fileWriter.close();
break;
case 2:
for (Voter v : voters) {
System.out.println(v);
}
break;
case 3:
System.out.print("Name: ");
Scanner ss = new Scanner(System.in);
String n = ss.nextLine();
System.out.println();
for (Voter v : voters) {
if (v.name.contains(n)) {
System.out.println(v);
break;
}
}
break;
case 4:
System.out.print("Id: ");
Scanner nn = new Scanner(System.in);
int s = nn.nextInt();
System.out.println();
for (Voter v : voters) {
if (v.nationalIdNumber.contains(s)) {
System.out.println(v);
break;
}
}
break;
case 5:
System.exit(0);
break;
default:
}
}
}
static class Voter {
public int nationalIdNumber;
public String name;
public String maleRelativeName;
public int age;
public String address;
public String province;
public Voter(int nationalIdNumber, String name, String maleRelativeName, int age, String address,
String province) {
this.nationalIdNumber = nationalIdNumber;
this.name = name;
this.maleRelativeName = maleRelativeName;
this.age = age;
this.address = address;
this.province = province;
}
public String toString() {
return "Id: " + nationalIdNumber + " Name: " + name + " Male Relative: " + maleRelativeName + " Age: "
+ age + " Address: " + address + " Province: " + province;
}
}
nationalIdNumber
是int
類型,它沒有任何方法。 你想做什么? 也許那行應該讀
if (v.nationalIdNumber == s) {
? 我不知道。 給我們更多的背景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.