当我意识到颜色返回null时,我只是有一些乐趣。奇怪的是,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.
谢谢,
图例
答案 0 :(得分:1)
如果你做了NullPointerException
type.getColor()
然后它是type
null
,而不是方法调用的返回值。
一旦你整理出错误,我建议你回到枚举。对于这些类型的对象,这是一种更好的方法。