这个包含内部类的变量究竟是什么?

时间:2013-11-12 14:05:09

标签: java oop inner-classes

我对这个包含内部类的变量有疑问:

private final Action actionLogOut = new AbstractAction() {
    {
        putValue(Action.NAME, _("log-out"));
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("logOutButton clicked !!!");
        System.exit(0);
    }
};

我的问题是我无法理解这行代码的不足之处:

putValue(Action.NAME, _("log-out"));

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:5)

putValue()是一个带有2个参数的方法,第一个参数似乎是某种常量,在outerinner类中定义(我假设这是因为它都是资本字母)和第二个参数

_("log-out")

是对名为......的函数的函数调用:

_(String arg1) // having _ as a function name is terribly a bad practice btw.

因此_("log-out")行中的putValue(Action.NAME, _("log-out"));将替换为名为_(String arg1)的函数返回的值

答案 1 :(得分:4)

我想下划线会引起你的注意。

由于_是在方法名称中使用的有效字符,所以

_("log-out")

可能是某些_(String s)方法的调用,在其他地方声明。

哦,不要写那种方法......