#java #scala #inheritance
#java #scala #наследование
Вопрос:
У меня возникла проблема с использованием Scala x Java.
Чтобы рассказать вам о ситуации, позвольте мне привести краткий пример:
- Класс Java
public class Animal {
}
- Класс Java
public class Cat extends Animal {
}
- Класс Scala
class Dog extends Animal {
}
- Класс Java
class Main {
public static void main(String[] args) {
Animal animal1 = new Dog(); //Java's Animal receives Scala's Dog reference
Animal animal2 = new Cat(); //Java's Animal receives a Java's Cat reference
}
}
Я получаю сообщение об ошибке типа:
Type mismatch: cannot convert from Dog to Animal
Но то же самое не происходит с классом Cat.
Кто-нибудь мог бы любезно объяснить мне, что здесь происходит?
Комментарии:
1. Не воспроизводимо. Компилируется просто отлично. Кажется, вы упростили свою проблему до небытия.
2. Какие версии scala и java вы используете? Даже я не получаю никаких ошибок
3. Привет! Я использую Scala 2.11.0. Странно то, что происходит в моей среде разработки Eclipse. Я пересмотрю свой путь сборки, чтобы проверить, все ли в порядке.
Ответ №1:
Ваш код должен работать при использовании следующих версий JDK и Scala: https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html
Ответ №2:
По какой-то причине я перезагрузил свой компьютер, и это сработало. Похоже, у меня возникла проблема в моем пути к классу.