Scala中的Java类类型不匹配?

时间:2019-03-22 09:14:41

标签: java scala

我试图从Color导入javafx类,并在scala类中使用它。 但是当我在其他地方使用我的课程时,会出现此错误:

Error:(9, 50) type mismatch;
 found   : javafx.scene.paint.Color
 required: drawingengine.Color

代码如下:

package drawingengine
import javafx.scene.paint.Color
sealed class Pixel(x: Int, y: Int, color: Color);

我可以将第3行更改为:

sealed class Pixel(x: Int, y: Int, color: javafx.scene.paint.Color);

但是我认为这有点丑陋,所以使用导入的类不是更好的方法吗?


我也收到此警告

imported `Color' is permanently hidden by definition of object Color in package drawingengine
import javafx.scene.paint.Color

和IntelliJ将导入线显示为灰色,就像未使用导入线一样。

我可以看到others遇到了同样的问题,但是我没有看到所示示例如何适用于我的工作。 那我该怎么办?

1 个答案:

答案 0 :(得分:2)

这意味着您已经在同一包Color中定义了自己的drawingengine类,并且该类正在与JavaFX碰撞。
这个

javafx.scene.paint.Color

修复了该问题,因为您明确使用了限定名。
如果要同时维护它们,则可以为JavaFX加上别名

import javafx.scene.paint.{Color => FxColor}

并像使用它

sealed class Pixel(x: Int, y: Int, color: FxColor);