2016-12-22 5 views
-4

目的:オブジェクトに使用できる 'if文'から配列を作成します。使用するオブジェクトのクラスメソッドから配列を作成する

ここにコードがあります。私はどの配列を作成するかを決定するためにlaneChoice()メソッドを使いたいと思います。私はもっと多くの 'else if'ステートメントを使うつもりです。しかし当分の間、私はNullPointerExceptionを取得し続けます。なぜなら、プライベートString [] Matchupが更新していないという理由があると仮定していますか?

private String[] Matchup; 

public class ChampionAnalysis { 
    private String lane; 
    private int aggression; 
    private String tankOrDps; 
    private String damageType; 
    private int mechanics; 
    private String champion=null; 
    private String[] Matchup; 

    public ChampionAnalysis(String lane, int aggression, String tankOrDps, String damageType, int mechanics) { 
     this.lane = lane; 
     this.aggression = aggression; 
     this.tankOrDps = tankOrDps; 
     this.damageType = damageType; 
     this.mechanics = mechanics; 

    } 

    public String[] laneChoice(){ 
     if(lane.equals("TOP")){ 
      String[] Matchup = new String[] {"Aatrox", "Camille","Cho'Gath","Darius","Dr.Mundo","Galio","Garen","Gnar" 
        ,"Hecarim","Illaoi","Jarvan IV","Kled","Malphite", "Maokai","Nasus","Nautilus","Olaf" 
        ,"Poppy","Renekton","Shen","Shyvana","Singed","Sion","Trundle","Udyr","Vladimir","Volibear" 
        ,"Wukong","Yorick","Zac"}; 

     } 
      return Matchup; 
    } 

    public String toString(){ 
     return (Matchup[1]); 
    } 
+0

ifステートメントの外で配列を宣言する必要があります –

答えて

0

変更if文で配列を作成しているあなたが現在行っている

public String[] laneChoice(){ 
    if(lane.equals("TOP")){ 
     Matchup = new String[] {"Aatrox", "Camille","Cho'Gath","Darius","Dr.Mundo","Galio","Garen","Gnar" 
       ,"Hecarim","Illaoi","Jarvan IV","Kled","Malphite", "Maokai","Nasus","Nautilus","Olaf" 
       ,"Poppy","Renekton","Shen","Shyvana","Singed","Sion","Trundle","Udyr","Vladimir","Volibear" 
       ,"Wukong","Yorick","Zac"}; 

    } 
     return Matchup; 
} 

からlaneChoice方法。しかし、その配列はif文の外で範囲外になります。 return Matchup;と言うとき、Matchupは初期化されていないクラスで宣言された配列を参照します。したがって、NullPointerExceptionが発生します。

関連する問題