javap -c

一段很有趣的代码:

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

}

posted @ 2008-07-24 11:40 灵秋 阅读(144) 评论(0) 编辑 收藏