0

配列リストからツリー名を取得しようとすると、Nullpointerexception が発生します。名前だけを取得してテストしましたが、まだこのエラーが発生しています。私がやりたいのは、どの機器がどの木を伐採しているかを知ることだけです.

public class TreeTester {
public static void main(String[] args) {   
    Tree trees = new Tree("Trees");
    Tree tree1 = new Tree("Ash Tree");
    trees.addTree(tree1);

ツリー クラス

public Class Tree{
    private ArrayList<Tree> theTrees;
    private String treeName;

    //Forgot these
    Tree(String trees //There are more but not relevent) {
        theTrees = new ArrayList<Tree>();
    }

    Tree(String treeName){
        this.treeName = treeName;
    }
    //

    public boolean addTree(Tree newTree){
        theTrees.add(newTree);
        return true;
    }

    @Override
    public String toString(){
        String s = getTreeName();
        return s;
    }

    private String getTreeName() {
        return this.treeName; }
    }

//------------------わかりやすくするために省略してあります--------------------------/ /不足している変数とコンストラクターを想像してみてください

public Class Equipment{
    private Tree TreeDetails;
    @Override
    public String toString(){
        String s = "Using " + getEqupiment(); + "to cut " + setCutTree()
    }

    public boolean setCutTree(){
        this.treename = treename.toString(); //Nullpointer issue here
        return this.treecut = true;
        //getEquipment works fine
    }

}
4

1 に答える 1

2

を初期化する必要がありますtheTrees ArrayList

public class Tree {
   private ArrayList<Tree> theTrees = new ArrayList<Tree>();

Treeメソッドで使用している 1 つの引数コンストラクターも省略していますmain。名前にアクセスするときに偶数を取得しているNullPointerExceptionため、このコンストラクターはどちらも初期化しないと想定していtreeNameます。

コンストラクターを使用すると、クラスは次のようになります。

public class Tree {

   private ArrayList<Tree> theTrees;
   private String treeName;

   public Tree(String treeName) {
      this.treeName = treeName;
      this.theTrees = new ArrayList<Tree>();
   } 
   ...
于 2012-11-07T18:05:45.620 に答える