我正在维护的某些代码使用了不熟悉的语法。我无法在Java文档中找到此语法的示例。
@IBAction func playVideo(_ sender: Any) {
let movieId = "xLCn88bfW1o"
let path = URL(string: "https://www.youtube.com/watch?v=\(movieId)")
let video = AVPlayer(url: path!)
let videoPlayer = AVPlayerViewController()
videoPlayer.player = video
present(videoPlayer, animated: true, completion: {
video.play()
})
}
和
public static void main(String[] args){
...
javax.swing.SwingUtilities.invokeLater(new MyClass.1());
...
}
Q1。 “ .1”和“ .5”是什么意思?
Q2。 “(此)”做什么?它是(this.param1,this.param2,...)的简写吗?
Q3。这种语法是专门用于匿名对象实例化,javax.swing组件,Runnables,多线程等的,还是通用的?
Q4。此代码的另一个版本使用更熟悉的语法。这些语句在语法上是否等同于上述语句(尽管构造函数调用和事件行为不同)?
public MyClass(a,m){
...
javax.swing.myJButton.addActionListener(new MyClass.5(this));
...
}
和
javax.swing.SwingUtilities.invokeLater(
new Runnable(){
public void run(){
new MyClass(a,m);
}
}
);
答案 0 :(得分:1)
那只是无效的Java语法。您可以通过阅读JLS来自己确认。
<identifier>
。<identifier>
不能以数字开头。因此,基本上,您要维护的内容不是有效的Java源代码。
我的猜测是,这是从反编译器输出的,并且反编译器遇到了一些字节码,它们不知道如何将其反编译为Java。如果您正在“维护”反编译的代码....祝您好运!您将需要从上下文中找出代码 的含义,并且/或者通过艰难的方式对字节码进行反向工程。