Эта ошибка возникает из-за того, что вы используете необработанные типы в своем коде Java (вы используете HashSet(....)
вместо HashSet<SomeType>(....)
), а необработанные типы преобразуются в типы, которые используют Any?
в качестве их обобщенного c типа, и MutableList нельзя назначить MutableList (как вы пытаетесь сделать в ошибочной строке). Если вы измените свой код Java следующим образом:
List<Double> xSecRaw = new ArrayList<>();
// Create a HashSet which allows no duplicates
hashSet = new HashSet<Double>(xSecRaw);
// Assign the HashSet to a new ArrayList
xSec = new ArrayList<Double>(hashSet);
// Ensure correct order, since HashSet doesn't
Collections.sort(xSec);
Тогда он, вероятно, будет переведен в такой код:
val xSecRaw: MutableList<Double?> = ArrayList<Double?>()
// Create a HashSet which allows no duplicates
hashSet = HashSet<Double?>(xSecRaw)
// Assign the HashSet to a new ArrayList
xSec = ArrayList<Double?>(hashSet) // <--- this line gives error!
// Ensure correct order, since HashSet doesn't
Collections.sort(xSec)
И этот код будет работать (вы должны изменить Double?
на Double
если в вашей коллекции нет нуля Double
s)
Также, если вы хотите удалить дубликаты из списка и отсортировать их, вы можете просто написать
xSec = xSecRaw.distinct().sorted()
вместо всего вашего кода.