Некоторый код, который я поддерживаю, использует незнакомый синтаксис.Я не смог найти примеры этого синтаксиса в документах 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));
...
}
Q1.Что означают и делают «.1» и «.5»?
Q2.Что делает (это)?Это сокращение для (this.param1, this.param2, ...)?
Q3.Этот синтаксис особенно подходит для создания экземпляров анонимных объектов, компонентов javax.swing, Runnables, многопоточности и т. Д., Или это общее использование?
Q4.Другая версия этого кода использует более знакомый синтаксис.Являются ли эти операторы синтаксически эквивалентными приведенным выше (несмотря на различные вызовы конструктора и поведение событий)?
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();
}
}
);