gpt4 book ai didi

java - "Actual or formal argument lists differs in length"

转载 作者:太空狗 更新时间:2023-10-29 22:40:43 27 4
gpt4 key购买 nike

当我尝试在 Friends f = new Friends(friendsName, friendsAge); 的 () 括号中添加内容时出现错误:

Constructor Friends in class Friends cannot by applied to given types. Required: no arguments. Found: String, int. Reason: actual or formal argument lists differ in length.

但是当我取出参数时,我的 friend 列表只显示“null 0”。即使我有 String friendsName = input.next();,是否还没有设置值?

此外,当我尝试删除好友时,它没有任何作用。在源代码中它确实提出了一个警告,

Suspicious call to util.java.Collection.remove: Given object cannot contain given instances of String (expected Friends).

我对这一切的含义感到困惑?

import java.util.ArrayList;
import java.util.Scanner;

public class Friends
{
public static void main( String[] args )
{
int menu;
int choice;
choice = 0;

Scanner input = new Scanner(System.in);
ArrayList< Friends > friendsList = new ArrayList< >();

System.out.println(" 1. Add a Friend ");
System.out.println(" 2. Remove a Friend ");
System.out.println(" 3. Display All Friends ");
System.out.println(" 4. Exit ");
menu = input.nextInt();

while(menu != 4)
{

switch(menu)
{

case 1:

while(choice != 2)
{
System.out.println("Enter Friend's Name: ");
String friendsName = input.next();
System.out.println("Enter Friend's Age: ");
int friendsAge = input.nextInt();
Friends f = new Friends(friendsName, friendsAge);
friendsList.add(f);
System.out.println("Enter another? 1: Yes, 2: No");
choice = input.nextInt();
} break;

case 2:

System.out.println("Enter Friend's Name to Remove: ");
friendsList.remove(input.next());
break;

case 3:

for(int i = 0; i < friendsList.size(); i++)
{
System.out.println(friendsList.get(i).name + " " + friendsList.get(i).age);
} break;
}

System.out.println(" 1. Add a Friend ");
System.out.println(" 2. Remove a Friend ");
System.out.println(" 3. Display All Friends ");
System.out.println(" 4. Exit ");
menu = input.nextInt();

}

System.out.println("Thank you and goodbye!");

}

public String name;
public int age;

public void setName( String friendsName )
{
name = friendsName;
}
public void setAge( int friendsAge )
{
age = friendsAge;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}

最佳答案

您尝试像这样实例化 Friends 类的对象:

Friends f = new Friends(friendsName, friendsAge);

该类没有带参数的构造函数。您应该添加构造函数,或者使用确实存在的构造函数创建对象,然后使用设置方法。例如,代替上面的:

Friends f = new Friends();
f.setName(friendsName);
f.setAge(friendsAge);

关于java - "Actual or formal argument lists differs in length",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17749409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com