2013-09-30 64 views
-2

我打算要创造一个新的对象的方法,所以我可以更新方法,每次我把它叫做创建新对象错误JAVA的Android

这里是代码:

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; 
} 
} 
+0

你是什么意思_it不会让你创建一个新的one_? –

+0

在我的ADT日食中,我放了一些像这样的Lod.d(“INITIALIZING”,“WAIT”); dc.createNewInnerDataObject(); Lod.d(“SUCCESS”,“SUCESS”);但成功的日志永远不会显示初始化后 –

+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; 
+1

错误的意义在哪?这是多余的? –

+0

是的,但它不会抛出任何异常或导致任何其他问题。 –

+0

不要向我解释。将它添加到您的答案。解释为什么这是不正确的,或者说为什么它可能不是OP所需要的。 –