当前位置: 首页 > 知识库问答 >
问题:

"实际或正式的参数列表长度不同"

徐瑞
2023-03-14

当我试图在<code>Friends f=new Friend(friendsName,Friends Age)的()括号中添加内容时 出现错误:

朋友类中的构造函数朋友不能应用于给定类型。必需:无参数。找到:字符串,int。原因:实际或正式参数列表的长度不同。

但当我取出参数时,我的朋友列表只显示“空0”。即使我有StringfriendsName=input.next(),值是否未设置

此外,当我尝试删除朋友时,它什么也不做。在源代码中,它确实会引发警告,

对util.java.Collection的可疑调用。remove:给定对象不能包含给定的字符串实例(应为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;
    }
}

共有3个答案

隗新霁
2023-03-14

假设你已经像这样定义了你的类:

    @Data
    @AllArgsConstructor(staticName = "of")
    private class Pair<P,Q> {

        public P first;
        public Q second;
    }

因此,当您需要创建新实例时,它将需要采用参数,并且您将按照注释中的定义提供它。

Pair<Integer, String> pair = Pair.of(menuItemId, category);

如果您像这样定义它,您将得到要求的错误。

Pair<Integer, String> pair = new Pair(menuItemId, category);
从智明
2023-03-14

默认构造函数没有参数。您需要指定构造函数

    public Friends( String firstName, String age) { ... }
长孙知
2023-03-14
匿名用户

您尝试实例化< code>Friends类的对象,如下所示:

Friends f = new Friends(friendsName, friendsAge);

该类没有接受参数的构造函数。您应该添加构造函数,或者使用确实存在的构造函数创建对象,然后使用set-方法。例如,而不是上面的:

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

 类似资料:
  • 当我试图在的()括号中放入一些内容时,出现了错误: 类Friends中的构造函数Friends不能应用于给定类型。必填:无参数。Found:字符串,int.原因:实际的或正式的参数列表的长度不同。 但是当我取出参数时,我的朋友列表只显示“null 0”。即使我有也没有设置这些值吗? 而且,当我试图删除一个朋友,它没有任何作用。在源代码中,它确实会提出一个警告, 对util.java.Collect

  • 我正在用Java编写一个Volume and Book类,以帮助我更好地理解构造函数和对象——基本上是OOP的更广泛方面。当我尝试创建一个主类时,我收到一个错误,其中说明了以下内容: “类卷中的构造函数卷不能应用于给定类型;必需:字符串、整数、Book[] 找到:无参数 原因:实际列表和正式列表的长度不同 ----” 这是我目前掌握的代码。 一、卷类: } 这里是main,我收到了上面提到的错误:

  • 所以我接到了一个任务,我必须在一段有点大而草率的代码中查找并修复许多错误。我只剩下最后一个了,我找不到解决这个问题的办法。我读过类似的场景,人们会犯同样的错误,但我无法将它们与我的代码联系起来。这就是我得到错误的地方:

  • 我不明白为什么它会给我一个错误代码,找不到合适的构造函数。 怎么了?

  • 我一直在拼命地尝试让这段代码工作。这是我第一次使用对象/构造函数(我是一个新程序员),这让我很困惑。我完全诚实;我不知道问题是什么。我已经尝试了很多东西,所以这段代码相当混乱。我也受够了,重新开始制作第二个代码,它也因为与第一个代码相同的原因而不起作用,尽管该代码的结构略有不同。我将在下面发布这两次尝试,希望有人能看到我的错误。谢谢! 尝试1: 尝试2: 任何帮助都将不胜感激。此外,因为我认为我的

  • 我目前的一项作业(用Java完成)有问题。我得到了一个关于抽象类和子类的项目。然而,我一直在为它创建复制构造函数,因为我不断地得到错误:实际的和正式的参数列表的长度不同。这里,arr是抽象的“超级”类,其内部的构造函数仅被定义(如下所示)。构造函数具有与2D数组的行(m)和列(n)相对应的参数。在Board类(扩展arr)中,我必须同时定义构造函数和复制构造函数。我已经使用super(m,n)定义