所以当我意识到颜色返回 null 时,我只是玩得很开心。但奇怪的是,颜色是在实现过程中制定的。我的代码是这样的:
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 运行此程序(仅供引用)。
打印示例:
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.
谢谢
图例。
最佳答案
如果执行此操作时收到 NullPointerException
type.getColor()
那么type
就是null
,而不是方法调用的返回值。
一旦你解决了错误,我建议你回到枚举。对于这些类型的对象来说,这是一个更好的方法。
关于java - 启动期间为空颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829981/