【问题标题】:Actual and formal argument lists differ in length, but they're the same length?实际参数列表和形式参数列表的长度不同,但它们的长度相同吗?
【发布时间】:2015-11-12 01:08:21
【问题描述】:

好的,基本上我已经在城市上空创建了一些移动的不明飞行物。我对 Java 中的图形非常陌生,并且在我使用图形的 5 次中有 2 次发布了关于我的一些工作的问题。所以我的主要目标是确保 UFO 在碰撞时相互反弹,但我在代码的以下部分中遇到了这个错误:

1 error found:
 [line: 56]
Error: method collision in class UFO cannot be applied to given types;
  required: no arguments
  found: UFO
  reason: actual and formal argument lists differ in length

代码部分:

  static UFO[]  swarm = new UFO[5]; //this is my UFO array attribute and it is static to work with the UFO collision method

    for (int i = 0; i < swarm.length; i++)
          for (int j = i+1; j<swarm.length; j++)
          swarm[i].collision(swarm[j]); 

【问题讨论】:

  • UFO#collision 方法是什么样的?
  • @MadProgrammer 关心聊天,对你的理解有帮助吗?
  • 您对碰撞方法的定义很可能不接受 UFO 作为参数。 :) 看起来它没有为它定义任何参数。在 Java 中,必须在函数定义中定义每个参数。所以:公共无效碰撞(UFO ufo){}
  • @Mr_Wizerman69 目前,我希望您可以使用collision 方法更新您的问题,以便我们都可以尝试理解问题;)
  • @Cosmic 我希望我能以某种方式将答案归功于您,但我不知道如何通过评论部分做到这一点。不幸的是,下面的用户回答的想法大致相同,所以我记下了他们,但希望你知道你是第一个来的。

标签: java arrays for-loop swingx


【解决方案1】:

collision() 方法必须定义如下才能在您展示时调用:

void collision(UFO ufo) {
    // collision implementation
}

返回类型不必是 void (它可以是任何东西,包括 Object 实际上取决于它是否返回某些东西),但方法签名必须有一个UFO 类型的参数。

【讨论】:

  • 好吧,我定义不正确。谢谢!但是使用(UFO other)(UFO[] swarm) 有什么区别?在@Cosmic 提出上述相同建议后,第一种方法对我有用。请注意,我已经在 UFO 类之外创建了 swarm 数组,所以我认为这可能会有所不同?
  • 哦,你刚刚回答了我的问题!
  • 当我看到我的失态时几乎立即纠正了这一点:)。好眼力。
  • @Mr_Wizerman69 不要忘记接受答案 ;) 好业力之类的。
  • 我发现这些东西非常有趣和有趣,虽然有时令人沮丧,所以我可以看到它如何提供一些便利。
猜你喜欢
  • 1970-01-01
  • 2014-04-06
  • 2019-08-10
  • 2023-03-25
  • 2016-05-31
  • 2018-05-08
  • 2013-10-04
  • 1970-01-01
  • 2013-07-18
相关资源
最近更新 更多