启动时颜色为空

时间:2012-03-22 20:28:05

标签: java class colors enums fixed

当我意识到颜色返回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.

谢谢,

图例

1 个答案:

答案 0 :(得分:1)

如果你做了NullPointerException

type.getColor()

然后它是type null,而不是方法调用的返回值。


一旦你整理出错误,我建议你回到枚举。对于这些类型的对象,这是一种更好的方法。