ok;私は学校のためのプロジェクトを作っており、落ちる砂に似たゲームをしています。しかし、重力が作用するためには、私は砂をその位置によってソートしなければなりません(この砂の変数)。このメソッドはそれをソートする必要があります。 .clone()を動作させることはできませんが、私が知っている他の方法でハードコピーすることはできません。だから、私はこのコードのすべてのコメントを、彼らが言うことをする何かに置き換える方法を知らない。自己作成クラスのarraylistをその変数の1つでソートすると、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();
^
のJava規則は、大文字、すなわち砂、ない砂でクラス名を開始することです。これを行うと、コードは読みやすくなります(少なくとも、通常の慣習に慣れていれば)。 – bm212