Groovy – 接口中定义的方法可以有默认值吗?
发布时间:2020-12-14 16:28:42 所属栏目:大数据 来源:网络整理
导读:如果在 Eclipse / STS中输入以下内容(使用groovy): interface iFaceWithAnIssue { def thisIsFine(a,b,c) def thisHasProblems(alpha='va')} 抱怨的唯一一行是尝试使用默认值的那一行.如果支持与否,我无法从codehaus网站告诉我. IDE错误是: Groovy:Cannot
如果在
Eclipse / STS中输入以下内容(使用groovy):
interface iFaceWithAnIssue { def thisIsFine(a,b,c) def thisHasProblems(alpha='va') } 抱怨的唯一一行是尝试使用默认值的那一行.如果支持与否,我无法从codehaus网站告诉我. IDE错误是: Groovy:Cannot specify default value for method parameter 所以这让我觉得它不受支持.由于会有多个实现,我想在这里使用一个接口.我真的不需要接口中的默认值,但是如果实现类然后尝试默认此参数,则尝试完成接口契约时会出错.有什么办法吗? 解决方法
你不能.
当您定义默认值时,Groovy实际上会在您的类中创建多个方法,例如: class Test { void something( a=false ) { println a } } 实际创造 public void something(java.lang.Object a) { this.println(a) } 和 public void something() { this.something(((false) as java.lang.Object)) } 这不能像接口那样完成. 你可以这样做: interface iFaceWithAnIssue { def thisHasProblems() def thisHasProblems(alpha) } 然后 class Test implements iFaceWithAnIssue { // This covers both Inteface methods def thisHasProblems(alpha='va') { // do something } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |