为了账号安全,请及时绑定邮箱和手机立即绑定

不熟悉的 Java 语法 '(new MyClass.1())'

不熟悉的 Java 语法 '(new MyClass.1())'

斯蒂芬大帝 2021-10-28 17:00:42
我维护的一些代码使用了不熟悉的语法。我无法在 Java 文档中找到这种语法的示例。public static void main(String[] args){    ...    javax.swing.SwingUtilities.invokeLater(new MyClass.1());    ...}和public MyClass(a,m){    ...    javax.swing.myJButton.addActionListener(new MyClass.5(this));    ...}一季度。'.1' 和 '.5' 是什么意思?Q2。'(this)' 有什么作用?它是 (this.param1, this.param2,...) 的简写吗?Q3。这种语法是专门用于匿名对象实例化、javax.swing 组件、Runnables、多线程等,还是普遍使用?第 4 季度。此代码的另一个版本使用更熟悉的语法。这些语句在语法上是否与上面的语句等效(尽管构造函数调用和事件行为不同)?javax.swing.SwingUtilities.invokeLater(    new Runnable(){        public void run(){            new MyClass(a,m);        }    });和javax.swing.myJButton.addActionListener(    new ActionListener(){        public void actionPerformed(ActionEvent e){            myJTextField.grabFocus();        }    });
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

那只是无效的 Java 语法。您可以通过阅读JLS自己确认这一点。

  • 在那个位置,<identifier>需要一个。

  • An<identifier>不能以数字开头。

因此,基本上,您尝试维护的内容不是有效的 Java 源代码。

我的猜测是这是一个反编译器的输出,反编译器遇到了一些不知道如何反编译为Java的字节码。如果您正在“维护”反编译代码....祝您好运!您需要从上下文和/或通过对字节码进行逆向工程来找出代码的含义


查看完整回答
反对 回复 2021-10-28
  • 1 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信