lateinit var dataList: PairList<Car, People>
Я хочу получить определенную позицию на основе пары, поэтому я делаю следующее:
val pair = Pair(carObj, peopleObj)
val position = dataList.indexOf(pair as Pair<Car, People>)
Но это выдает ошибку Ошибка вывода типа и просит явно указать тип.Я думаю, что я сделал это с as Pair<Car, People>
, но он говорит, что это избыточное утверждение.Есть идеи, где я ошибся?:)
Класс PairList:
public class PairList<F, S> extends ArrayList<Pair<F, S>> {
public boolean add(F first, S second) {
return add(new Pair<>(first, second));
}
public void add(int index, F first, S second) {
add(index, new Pair<>(first, second));
}
@Override
public int indexOf(Object o) {
if (o instanceof Pair) {
return super.indexOf(o);
} else {
for (int i = 0; i < size(); i++) {
Pair<F, S> pair = get(i);
if (pair != null) {
if (pair.first.equals(o)) return i;
} else {
if (o == null) return i;
}
}
for (int i = 0; i < size(); i++) {
Pair<F, S> pair = get(i);
if (pair != null) {
if (pair.second.equals(o)) return i;
} else {
if (o == null) return i;
}
}
}
return -1;
}
public int indexOf(F first, S second) {
for (int i = 0; i < size(); i++) {
Pair<F, S> pair = get(i);
if (pair != null) {
if (pair.first.equals(first) && pair.second.equals(second)) {
return i;
}
} else {
if(first == null && second == null) {
return i;
}
}
}
return -1;
}