#java #arraylist
#java #arraylist
Вопрос:
Я пытаюсь изменить значение объекта ‘Bar’, я создал метод изменения, который принимает 2 переменные bar, однако, когда я пытаюсь использовать его в ‘list.get (i)’ в методе compareBar, я получаю сообщение об ошибке, в котором говорится, что этот метод не определен для типа ArrayList, это не объект Bar и как мне изменить его, чтобы это было так?
public class Envelope {
ArrayList<Bar> list = new ArrayList<Bar>();
//Compares and adjusts range of bars accordingly
public void compareBars() {
for(int i = 0; i < list.size(); i ) {
if(list.get(i 1).left <= list.get(i).right) {
if(list.get(i).height >= list.get(i 1).height) {
list.change(list.get(i 1),list.get(i));
}else if(list.get(i 1).height >= list.get(i).height) {
list.change(list.get(i),list.get(i 1));
}
}
}
}
// Modifies ranges of bar values
public void change(Bar target, Bar replacement) {
if(target.left < replacement.left) {
target.right = replacement.left;
}
if (target.left > replacement.left) {
target.left = replacement.right;
}
}
}
Комментарии:
1.
change
определяется для вашегоEnvelope
типа, а неArrayList<Bar>
. Поэтомуlist.change
не будет работать. Вам понадобитсяthis.change
. Голосование за закрытие как опечатку / невоспроизводимость / бесполезность для других в будущем.2.
change(Bar target, Bar replacement)
предназначено для классаEnvelope
, а не для метода классаArrayList
3. Попробуйте использовать
this.change
вместоlist.change