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

函数需要两个参数但定义只包含一个参数

朱承载
2023-03-14

我有一个非常奇怪的问题,很简单,但我不明白问题是什么。

我有一个类,ClassA调用ClassB中的函数,比如-

ClassA {
  
  private transient MessageHelper MessageHelper
  private transient ClassB classB;

  private boolean messageNotification(Param1 firstParam, Param2 secondParam)
  {
    ...messageBean = messageHelper.getAMessageBean(firstParam, secondParam)...
    
    ...

    classB.sendMessage(messageBean);
  }
}

类A是在我的applicationContext中定义的bean。类xml

    <bean id="classa" class="path.to.ClassA">
        <property name="messageHelper" ref="messageHelper"/>
        <property name="classB" ref="classB"/>
    </bean>

ClassB中的函数定义看起来像

公共布尔sendMessage(MessageBean bean)抛出MessageExctive{...}

IntelliJ没有指出任何语法问题,一切看起来都很正常。。。然而,当我试图编译时,Maven出现了一个异常

ClassA.java:[292,27] method sendMessage in class MessageSender cannot be applied to given types;
  required: MessageBean,boolean
  found: MessageBean
  reason: actual and formal argument lists differ in length

B类与a类位于不同的模块中,因此B类位于a类的pom中。作为依赖项的xml

我用的是jdk 1.8.0_212和maven版本3.6.3

错误发生时运行mvn清洁安装在ClassA的模块我尝试无效缓存在intellij

有人能帮我理解这是什么问题吗?

共有2个答案

方权
2023-03-14

你的Maven发现了一些旧版本的模块,其中包含已经编译好的类B,所以它不会重建那个模块。试着在你的inteliJ中清除你的目标目录,看看你的m2本地存储库中是否有那个模块。如果在那里,删除它。这将迫使你在构建类A模块时重建类B模块。如果可以的话,你可能想手动运行构建类B模块。

邓驰
2023-03-14

尝试在包含ClassB的模块上安装mvn

注意:由于我不能作为新的投稿人添加评论,所以添加了这个答案。

 类似资料:
  • 我尝试了上述命令的各种组合,但结果总是上面给出的错误消息。为什么会发生这样的事情--因为我是按照文档所说的去做的?

  • 我试图从特定的Dockerfile构建镜像,并同时标记它;我遵循的在线说明,但我得到以下错误: “docker build”只需要1个参数 这是我运行的命令: 我尝试了上述命令的各种组合,但结果总是上面给出的错误消息。为什么会发生这种情况——因为我在遵循留档所说的?

  • 问题内容: 我已升级到Xcode 7,并且使用Alamofire来管理API调用,但出现此错误: ‘闭包参数列表的上下文类型需要1个参数,但指定了4个参数’ 对于以下代码: 错误是指以下行: 我是Swift闭包的新手,不知道是否必须嵌套值才能使其有效。 非常感谢您的帮助。 问题答案: 该闭包采用类型为Response 的单个参数,因此您的代码应更像这样。

  • 原始关闭原因未解决 我只是想从另一个目录构建dockerfile,我尝试了以下命令 和 它们都产生相同的错误

  • 我目前正在学习打字稿,我遇到了一个对我来说不太有意义的错误。 以下函数有一个对象作为参数 还有一个具有两种泛型类型的。 现在,我创建了一个名为的对象,它接受一个对象和一个字符串。 当我调用函数<code>addId</code>时,它抛出以下错误:<code>Generic type‘UserInterface 我不明白为什么我会有这个错误,因为< code>user对象有< code>name

  • Sonarqube只允许函数的7个参数。我有一个函数,它用8个参数组成字符串。 使此函数只有7个参数。我通过删除最后一个参数<code>dat</code>来拆分函数,但为了计算<code>dat</code>变量,我还需要<code>b</code>和<code>d</code>变量值。因此,在函数返回后,我需要<code>b</code>和<code>d</code>的值来计算<code>da