При манипулировании объектами scala (в основном из пакета scala.collection) функции перегруженных оператором функций, по-видимому, доступны для использования в Java.Операторы scala как методы в java
т.е. в Скале
var s = Set(1, 2, 3)
var t = s + 4
var x = s | t
так в Java, глядя на scala.collection.Set
в затмение автозаполнения, я могу видеть прототипы
Но я не могу использовать их правильно
import scala.collection.Set;
Set<Integer> s = new Set<Integer>();
Set<Integer> t = s.$plus(4); /* compile error with javac, or runtime error with eclipse/*
Как эти scala m этаты, предназначенные для использования внутри Java?
Я думаю, это не проблема имен методов по себе: причина в иерархии коллекции, вероятно, Скала и контрвариантность: Javac не может считать 'scala.collection.Set' как '' scala.collection.immutable.Set –
Я думаю, контравариантность в моем другом вопросе, хотя и присутствует, была красной селедкой. В этом случае я не использую 'scala.collection.immutable.Set <>' Я просто использую 'scala.collection.Set <>' – muttonUp