【问题标题】:creating new object error JAVA android创建新对象错误JAVA android
【发布时间】:2013-09-30 19:44:03
【问题描述】:

我打算有一个方法来创建一个新对象,这样我每次调用它时都可以更新该方法

代码如下:

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

【问题讨论】:

  • 什么意思它不会让你创建一个新的
  • 在我的 ADT eclipse 中我放了一些像这样的 Lod.d("INITIALIZING", "WAIT"); dc.createNewInnerDataObject(); Lod.d("成功", "成功");但是初始化后SUCCESS日志永远不会出现
  • 这是什么意思...?
  • 你应该过滤 logcat 到错误日志并向我们展示错误堆栈,抛出什么异常?
  • 我们需要查看 BusSearchOuterDataResults 的构造函数中的代码。看起来这在某种程度上失败了,但从你迄今为止发布的内容来看,原因尚不清楚。

标签: java android class object


【解决方案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;

【讨论】:

  • 是的,但它不会抛出任何异常或导致任何其他问题。
  • 别跟我解释。将其添加到您的答案中。解释为什么这是不正确的,或者更确切地说为什么它可能不是 OP 需要的。
  • @Tanis 你不能用无用的行来填充你的代码并期望它能够正常工作,你必须编写一个干净易懂的代码,然后尝试调试它以防它抛出异常跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多