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

实际参数和形式参数的长度不同-Java构造函数错误

锺离玮
2023-03-14

我开始学习Java,遇到了一个我无法解决的问题。我有一个名为MyClass的类,带有构造函数。我想将该构造函数设置为访问私有字段:

public class MyClass{
    private long variable1;
    public MyClass(long variable1){
        this.variable1=variable1;
    }
    public long somethingElse(Argument argument){
        return somevalue;
    }
    }

当我删除构造函数时,我可以从另一个类调用somethingElse。然而,当我沿着这条路线尝试一些东西时

data = new MyClass(); 
return data.somethingElse(argument);

我在data=new MyClass()处得到一个错误,即实际参数和形式参数的长度不同,并且“需要long,found no参数”。我该如何解决这个问题?

共有2个答案

麻昌翰
2023-03-14

那么你函数的某物Else()应该返回一个long。所以如果你要返回传入的参数,你希望它也是一个long。说你要返回一个long,然后传入一个整数作为参数并返回它是没有多大意义的。

public long somethingElse(Argument argument){
    return somevalue; // have to make sure this is a long.
}

如果这不是你的问题,请给出一个更具体的问题示例,我们是你的实际代码,这样我们就可以看到可能出现的错误。

编辑:

MyClass data = new MyClass(Some long here);

确保构造函数及其所需的参数与实例化数据的对象相匹配。一旦您声明了自己的构造函数,生成的默认构造函数就不再对您可用。

祝锐
2023-03-14

从此处开始:

编译器自动为没有构造函数的任何类提供无参数默认构造函数

当显式添加构造函数时,将重写默认的no-arg构造函数。所以,要想拿回它,只需手动添加即可:

public class MyClass{
    private long variable1;

    // This is what you need to add.
    public MyClass() {
    }

    public MyClass(long variable1){
        this.variable1 = variable1;
    }

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

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

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

  • 我到处找,但找不到解决我问题的办法。我是新来Java的,我正在尝试建立一个app,但由于某种原因我过不了这个问题。我得到这个错误: 错误:(68,33)错误:找不到ArrayAdapter(OneFragment,int,String[])的合适构造函数构造函数ArrayAdapter.ArrayAdapter(Context,int,int,List)不适用(实际参数列表和正式参数列表的长度不同

  • 问题内容: 请帮助我解决此错误: C10h1.CollegeMember类中的构造方法CollegeMember不能应用于给定类型;必需:java.lang.String,java.lang.String; 发现:无论据;原因:实际和形式上的论据长度不同 我也尝试添加一个默认的构造函数来调用super,但这给了我另一个错误! 码: 问题提示: 创建3个公共课程:CollegeMember,Stud

  • 请帮助我修复此错误: C10h1类中的构造函数College成员。College成员不能应用于给定类型;必需:java.lang.字符串,java.lang.字符串;找到:没有参数;原因:实际参数和正式参数长度不同 我还尝试添加一个默认构造函数来调用super,但它只是给了我另一个错误! 代码: 问题提示: 创建3个公共类:CollegeMember、Student和Professor。学生和教授