2013-05-04 6 views
-2

문제가 있습니다. 나는 물고기가있는 생태계에 대한 코드를 작성 중이며 기존 FishList Array에 새 Fish 객체를 추가하려고합니다. 그러나 ArrayList를 검사하면 비어있는 것으로 판명됩니까? 생각?Java 객체가 ArrayList에 추가되지 않았습니다.

public void addFish(Fish f){ 
    ArrayList<Fish> fishplusone = new ArrayList<Fish>(fish.size()); 
    if (landscape[f.getRow()][f.getCol()] != ROCK) { 
     for (Fish otherfish: this.fish) { 
       if(otherfish.getRow() == f.getRow() && otherfish.getCol() == f.getCol()) { 
        throw new IllegalFishPositionException(IllegalFishPositionException.TWO_FISH_IN_ONE_PLACE); 

       } 
       else { 
        fishplusone.add(otherfish); 
        } 
       fishplusone.add(f); 
       fish = fishplusone; 
       } 

      } 
+1

게시물을 편집하여 눈에 띄게 들여 쓰기를하고 불필요한 코드를 제거하십시오. 이상적으로, 문제를 보여주는 짧지만 완전한 * 프로그램을 보여 주어야합니다. 예를 들어 '물고기'변수가 무엇인지 전혀 알 수 없습니다. –

+1

아마도'landscape [f.getRow()] [f.getCol()]'은'ROCK'이거나'this.fish'는 비어 있습니다 (예외가 없다고 가정 할 때). – assylias

+0

항상 예외가 발생합니까? –

답변

0

당신은 새로운 ArrayList를 매번 작성 : ArrayList<Fish> fishplusone = new ArrayList<Fish>(fish.size());

쉽게 먼저 확인을하고 다음은 기존 목록에 추가되지 않습니다?

관련 문제