Несоответствие типов классов Java в Scala? - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь импортировать класс 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 затеняет строку импорта, как если бы она не использовалась.

Я вижу, что другие имели такую ​​же проблему, но я не вижу, как показанный пример применим к тому, что я делаю. Так что я могу сделать с этим предупреждением?

1 Ответ

2 голосов
/ 22 марта 2019

Это означает, что вы определили свой собственный класс Color внутри одного и того же пакета drawingengine и столкнулись с классом JavaFX.
Этот

javafx.scene.paint.Color

исправляет его, потому что выявно используйте полное имя.
Если вы хотите сохранить оба из них, вы можете использовать псевдоним JavaFX

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

и использовать его как

sealed class Pixel(x: Int, y: Int, color: FxColor);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...