它在Java接口中将方法签名声明为final和non-final有什么区别?
int setName(String name);
int setName(final String name);
答案 0 :(得分:10)
Section 8.4.1允许将任何方法声明中的参数(包括接口中的参数)声明为final。但是,由于这不会影响方法的signature,因此将抽象函数的参数声明为final
无效。由于接口中的所有方法都是implicitely abstract,因此两种变体都是等效的。
答案 1 :(得分:2)
答案 2 :(得分:1)
一些偶然的差异
它可以被IDE用作提示。例如当你让IDE自动生成你实现的方法时,默认情况下它将使参数final
与重用相同参数名称的方式相同,即使它们不是签名的一部分。< / p>
修饰符final
可通过反射获得,并可由框架用于某些隐含目的。