创建新对象错误JAVA android

时间:2013-09-30 19:44:03

标签: java android class object

我计划创建一个创建新对象的方法,以便每次调用它时都可以更新方法

这是代码:

public class CollectedData {
     List<BusSearchOuterDataResults> busData = new ArrayList<BusSearchOuterDataResults>();
     public BusSearchOuterDataResults outerData;
     public void createNewOuterDataObject(){
         outerData = new BusSearchOuterDataResults();
         this.outerData = outerData;
     }
     public void createNewInnerDataObject(){
         outerData.createNewInnerDataObject();
     }
     public void addAllCollectedData(){
         busData.add(outerData);
     }
     public List<BusSearchOuterDataResults> getBusData(){
         return busData;
     }
}

为什么当我调用createNewOuterDataObject方法时,它不会让我创建一个新的,因为我已经调用了createNewOuterDataObject的类obj而没有任何初始化?

public class BusSearchOuterDataResults {
List<BusSearchInnerDataResults> innerData = new ArrayList<BusSearchInnerDataResults>();

private String routeNo;
private String routeLabel;
private String direction;
public BusSearchInnerDataResults innerDataOBJ = new BusSearchInnerDataResults();

public BusSearchOuterDataResults(String routeNo, String routeLabel, String direction){
    this.routeNo = routeNo;
    this.routeLabel = routeLabel;
    this.direction = direction;
}

public BusSearchOuterDataResults(){

}

public void createNewInnerDataObject(){
    BusSearchInnerDataResults innerDataOBJ = new BusSearchInnerDataResults();
    this.innerDataOBJ = innerDataOBJ;
}
public void addAllCollectedData(){
    innerData.add(new BusSearchInnerDataResults());
}

public void setRouteNo(String routeNo){
    this.routeNo = routeNo;
}
public void setRouteLabel(String routeLabel){
    this.routeLabel = routeLabel;
}
public void setDirection(String direction){
    this.direction = direction;
}
public String getrouteNo(){
    return routeNo;
}
public String getrouteLabel(){
    return routeLabel;
}
public String getdirection(){
    return direction;
}
public List<BusSearchInnerDataResults> getData(){
    return innerData;
}
}

1 个答案:

答案 0 :(得分:1)

您的代码不正确:

public void createNewOuterDataObject(){
   outerData = new BusSearchOuterDataResults(); // here you are initializing your field
   this.outerData = outerData; // but here ? what is this line for ? 
}

第二行什么都不做,就像做

int x = 0 ;
 x=x;