我有带有受保护静态方法的java类:
package child
import parent.Parent
class Child extends Parent {
def childMethod = {
println("I'm in child method and calling parentMethod")
Parent.parentMethod()
}
}
在Scala 2.12.4(2.12.3)之前,我可以从另一个包中调用此方法:
@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "datepicker", @Value = model.StartDate.ToString("yyyy/MM/dd") } })
但Scala 2.12.4不编译此代码。我收到了错误:
错误:(9,12)方法parentMethod in object Parent无法访问 在对象parent.Parent访问受保护的方法parentMethod不 允许,因为前缀类型parent.Parent.type不符合 object访问发生的包子中的子项 Parent.parentMethod()
这种访问模式对我来说非常重要,因为JOOQ代码生成使用它。
发生了什么事?
答案 0 :(得分:4)
很好,这很可能是this PR引入的回归,作为this issue解决方案的一部分。
我已经为此启用了a ticket,您可以跟踪。同时,如果这种访问模式对于您的应用程序至关重要,不幸的是我认为您没有太多选择,只能暂时坚持使用Scala 2.12.3。
该问题已为人所知a fix has been already merged。截至撰写本文时,补丁必然是2.12.5版本的一部分。