Я знаю, что это древние версии Java, но мне все еще интересно.С учетом следующего фрагмента:
public void test(java.awt.event.MouseEvent e)
{
System.out.println(e.getID());
}
При компиляции с javac -source 1.3 -target 1.1
генерируется следующее:
public void test(java.awt.event.MouseEvent);
Code:
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: aload_1
4: invokevirtual #3 // Method java/awt/AWTEvent.getID:()I
7: invokevirtual #4 // Method java/io/PrintStream.println:(I)V
10: return
При компиляции с javac -source 1.3 -target 1.2
генерируется следующее:
public void test(java.awt.event.MouseEvent);
Code:
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: aload_1
4: invokevirtual #3 // Method java/awt/event/MouseEvent.getID:()I
7: invokevirtual #4 // Method java/io/PrintStream.println:(I)V
10: return
Почему тип цели invokevirtual (см. Строку 4) изменился с цели 1.1 на цель 1.2?