コンソールは、「変数」行のnullポインター例外を指しています。
variable = spritePanel.getVariables();
for(String s: variable.keySet()){
sb.append(s);
sb.append(variable.get(s));
sb.append("<br>");
}
私のコードの上部には、次のものがあります。
public HashMap<String,Double> variable = new HashMap<String,Double>();
spritePanelは、同じパッケージ内にある別のクラスのインスタンスであり、メソッドgetVariables()はHashMapを返します。
助けてくれてありがとう。
編集-それで、これが全体の方法です:
private String formatVariables() {
spritePosition = spritePanel.getSpritePosition(0);
double xcoor = spritePosition.getX();
double ycoor = spritePosition.getY();
double direc = spritePosition.getDirection();
boolean pendown = spritePosition.getIsPenDown();
boolean visibility = spritePosition.getIsHiding();
StringBuffer sb = new StringBuffer();
sb.append("<html><p align=left>");
sb.append("X = ");
sb.append(xcoor);
sb.append("<br>");
sb.append("Y = ");
sb.append(ycoor);
sb.append("<br>");
sb.append("Direction = ");
sb.append(direc);
sb.append("<br>");
sb.append("PenDown = ");
sb.append(pendown);
sb.append("<br>");
sb.append("Sprite Hidden = ");
sb.append(visibility);
sb.append("<br>");
//sb.append("</p></html>");
//before I added the variable HashMap, the string buffer code worked
variable = spritePanel.getVariables(); //this is where it breaks according to the console
for(String s: variable.keySet()){
sb.append(s);
sb.append(variable.get(s));
sb.append("<br>");
}
sb.append("</p></html>");
return sb.toString();
}
これは、variable = spritePanel.getVariables();
実行時にspritePanelがnullであることを意味します。変数がnullに設定されていて、その変数を使用してメソッドを呼び出そうとすると、Javaはその例外をスローします。視覚化するために、その行は次のように実行されvariable = null.getVariables();
ます。nullにはgetVariables()というメソッドがありません。spritePanelがいつnullになったのかを調べてみてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加