ки; Я делаю проект для школы, и это игра, похожая на падающий песок. но чтобы гравитация работала, мне нужно отсортировать песок по его положению снизу вверх (переменная y песка), этот метод должен отсортировать его; хотя я не могу заставить работать .clone () и не могу печатать другим способом, каким я знаю. так что я не знаю, как заменить все комментарии в этом коде чем-то, что будет делать то, что они говорят.
чтобы объяснить, как я хочу, чтобы это работало; Я хочу, чтобы он один за другим удалял элементы из мира, а я помещал их отсортированными в отсортированном виде.
public void sort(){
//method to sort elements by y value
ArrayList<sand> sorted=new ArrayList<sand>();
if(world.size()!=0){
//code to take 0 from world and place it into sorted at 0
while(world.size()>0){
boolean check=true;
for(int i=0;i<sorted.size();i++){
if(world.get(0).y<sorted.get(i).y){
//code to take 0 from world and place it into sorted at i
check=false;
}
}
if(check){
//code to take 0 from world and place it at the end
}
}
}
//code to make sorted the contents of world
}
ошибка, которую я получаю с клоном:
awesomesand.java:48: clone() has protected access in java.lang.Object
sand a=world.get(0).clone();
и, да, мир имеет тип песка.
EDIT
теперь я получаю ошибку при клонировании.
awesomesand.java:48: incompatible types
found : java.lang.Object
required: awesomesand.sand
sand a=world.get(0).clone();
^