2

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

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"));

有人可以帮助我吗?

4

2 回答 2

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)

于 2013-11-12T14:07:56.673 回答
4

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

作为_在方法名称中使用的有效字符,您的

_("log-out")

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

哦,不要写这样命名的方法......

于 2013-11-12T14:08:23.417 回答