抱歉,Java新手C ++程序员再次罢工

我有这个代码

public class MainView extends View {

    static final int DRAW_LIST_SIZE=100;
    class EventDrawStuff {
        int         a;
        int         b;
        int         c;
    }
    static EventDrawStuff   m_drawList[] = new EventDrawStuff[DRAW_LIST_SIZE];

    class DrumEventDrawStuff {
        int     x;
        int     y;
    }
    static DrumEventDrawStuff m_eventDrawStuff = new DrumEventDrawStuff();


m_drawList的声明似乎可以正常工作,m_eventDrawStuff的声明无法编译。有什么区别,不能只是m_drawList是一个数组?
我注意到,如果我说

static DrumEventDrawStuff[] m_eventDrawStuff = new DrumEventDrawStuff[1];


没关系,但是我真的不希望它是一个数组,因为它只是一件事。
我意识到修复原始代码的方法是在构造函数中初始化m_eventDrawStuff,但这似乎很麻烦且不必要。

也许我完全错了主意,请赐教,谢谢

最佳答案

您可以通过两种方式进行操作-


使内部类静态
DrumEventDrawStuff对象的帮助下创建MainView对象。

static DrumEventDrawStuff m_eventDrawStuff = new MainView().new DrumEventDrawStuff();

关于java - java初始化一个字段是一个类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14273423/

10-10 10:35