【发布时间】:2014-06-13 16:58:02
【问题描述】:
如果我们声明一个接口,我们也必须指定变量名。
例如在这个示例中
public interface ZipCodeServer {
public String getCityName(int zipCode);
}
zipCode 的目的是什么。理想情况下,我只想拥有
public interface ZipCodeServer {
public String getCityName(int);
}
不指定其名称。如果我不声明它的名字,我会得到一个编译时错误。谁能指出在接口中强制声明变量名的确切目的
编辑:我实际上并没有试图说服任何人变量名不应该存在。我在问强制执行的目的是什么。它对编译器有用吗?
【问题讨论】:
-
参数名称的目的是让代码的作者有机会识别参数的用途。
-
您需要记录参数的用途。有时一个简单的名称就足够了文档,如果不是,你仍然需要一个简写来识别参数(并且“第 [i-th] 参数”对此非常糟糕)。
-
我同意,但如果方法名称本身就足够了,那不应该是可选的,而不是强制性的。
-
将它们设为可选会增加句法和语义的复杂性,需要额外的实现工作,并且不会产生任何对体面的代码的好处。功能从您知道的 -100 分开始。
-
嗯,接口通常定义合同,对吧?如果您有不同的实现并定义参数以表示不同的事物,那么接口将远不如现在有用,并且实际上可能被认为是这种方式被破坏了。拥有名称可以绝对清楚地说明什么参数应该意味着什么。我真的不认为留下名字有什么好处,而要求它有好处。
标签: java oop interface programming-languages language-design