为什么Java接口方法参数需要声明ID?

为什么Java接口方法参数需要声明ID?,java,interface,named-parameters,Java,Interface,Named Parameters,问题总结了一下 在C++中,可以用一个参数类型列表来声明接口方法,但是在爪哇中,需要将变量名与类型关联起来。我知道这会增加可读性,但如果这是可选的,那就太好了。参数名甚至不必与实现名匹配,那么为什么还要麻烦在接口中命名它们呢 public interface Foo() { setName(String, String) // Why can't this be enough? } public class FooImpl implements Foo { private String

问题总结了一下

在C++中,可以用一个参数类型列表来声明接口方法,但是在爪哇中,需要将变量名与类型关联起来。我知道这会增加可读性,但如果这是可选的,那就太好了。参数名甚至不必与实现名匹配,那么为什么还要麻烦在接口中命名它们呢

public interface Foo() {
  setName(String, String) // Why can't this be enough?
}

public class FooImpl implements Foo {
  private String name = "";

  @override
  setName(String fname, String lname) {
    this.name = String.format("%s %s", fname, lname);
  }
}

我不确定除了“因为语言就是这样定义的”…我想语言的设计者会让一些东西更具可读性。事实上,这已经在前面讨论过了:我想到的唯一原因是启用集成。Javadocs需要这些名称。参数由文档中的名称匹配。如果没有名称,您将不知道任何参数的用途。如果您使用的是IDE,它可以使用名称来填充生成的实现存根。它们是有用的,如果不是直接的。