一段很有趣的代码:
Java代码:
package com.google.gwt.sample.hello.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.RootPanel;
public class Hello
implements EntryPoint
{
public Hello()
{
}
public void onModuleLoad()
{
Button b = new Button("Click me", new Object() /* anonymous class not found */
class _anm1 {}
);
RootPanel.get().add(b);
}
}
JavaP带码:
C:\>javap -c hello
Compiled from "Hello.java"
public class com.google.gwt.sample.hello.client.Hello extends java.lang.Object i
mplements com.google.gwt.core.client.EntryPoint{
public com.google.gwt.sample.hello.client.Hello();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public void onModuleLoad();
Code:
0: new #2; //class com/google/gwt/user/client/ui/Button
3: dup
4: ldc #3; //String Click me
6: new #4; //class com/google/gwt/sample/hello/client/Hello$1
9: dup
10: aload_0
11: invokespecial #5; //Method com/google/gwt/sample/hello/client/Hello$1.
"<init>":(Lcom/google/gwt/sample/hello/client/Hello;)V
14: invokespecial #6; //Method com/google/gwt/user/client/ui/Button."<init>":(Ljava/lang/String;Lcom/google/gwt/user/client/ui/ClickListener;)V
17: astore_1
18: invokestatic #7; //Method com/google/gwt/user/client/ui/RootPanel.get
:()Lcom/google/gwt/user/client/ui/RootPanel;
21: aload_1
22: invokevirtual #8; //Method com/google/gwt/user/client/ui/RootPanel.add
:(Lcom/google/gwt/user/client/ui/Widget;)V
25: return
}