我有一个 Java 方法签名,似乎无法转换为 Java 中的签名。
这是Java代码:
public class InjectorListCellRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
throw new RuntimeException("not important");
}
}
这里是我希望等效的 Scala 代码:
class InjectorListCellRenderer(var painter: ParticleLabelPainter) extends DefaultListCellRenderer {
override def getListCellRendererComponent(list: JList[_], value: Any, index: Int, isSelected: Boolean, cellHasFocus: Boolean): Component = {
throw new RuntimeException("not important")
}
}
但是,当使用 sbt 和 Scala 2.11.8 进行编译时,出现以下错误:
类 InjectorListCellRenderer 需要是抽象的,因为类型为 (x$1: javax.swing.JList[_ <: Object], x$2: Object, x$3: Int, x$4: Boolean, x$5: Boolean 的 trait ListCellRenderer 中的方法 getListCellRendererComponent )java.awt.Component 未定义
可以在此处找到基类 DefaultListCellRenderer 的文档。
我似乎无法用我自己的代码重现这个问题。