色がヌルを返すことがわかったときにちょっと楽しかったです。奇妙なことですが、Colorは実装時に作成されます。私が持っているコードは次のとおりです。スタートアップ時のヌルカラー
package org.legend.game;
import java.awt.Color;
public class Type {
final static Type GROUND;
final static Type AIR;
static{
AIR = new Type(0);
GROUND = new Type(1);
}
private Color c;
Type(int type) {
Color c = colorFromType(type);
System.out.println(c);
this.c = c;
}
public Color getColor() {
return c;
}
private Color colorFromType(int num) {
switch (num) {
case 0:
return new Color(0, 0, 0, 0);
default:
return new Color(255, 255, 255, 255);
}
}
}
これまでに列挙型を使ってみましたが、それもうまくいきませんでした。技術的に言えば、これはうまくいくはずですが、何らかの理由で色が常にnullを返します。
これはなぜ起こっているのですか?私はこれをApplet FYIで実行しています。
例の印刷:
java.awt.Color[r=0,g=0,b=0]
java.awt.Color[r=255,g=255,b=255]
//Classic NullPointerException linking to the Type#getColor() method.
おかげで、
伝説。
"AIR = new Type(0、new Color(0、0、0、0));" – Nican
私はこれを試しました。 –