快學Scala習題解答—第五章 類
阿新 • • 發佈:2018-12-25
生成了name(),name_=(),id(),id_=(),setName(),getName(),setId(),getId() 編寫程式碼如下
import scala.reflect.BeanProperty class Student{ @BeanProperty var name:String = _ @BeanProperty var id:Long = _ }
javap -c Student 後顯示如下
Compiled from "Student.scala" public class Student extends java.lang.Object implements scala.ScalaObject{ public java.lang.String name(); Code: 0: aload_0 1: getfield #13; //Field name:Ljava/lang/String; 4: areturn public void name_$eq(java.lang.String); Code: 0: aload_0 1: aload_1 2: putfield #13; //Field name:Ljava/lang/String; 5: return public void setName(java.lang.String); Code: 0: aload_0 1: aload_1 2: putfield #13; //Field name:Ljava/lang/String; 5: return public long id(); Code: 0: aload_0 1: getfield #19; //Field id:J 4: lreturn public void id_$eq(long); Code: 0: aload_0 1: lload_1 2: putfield #19; //Field id:J 5: return public void setId(long); Code: 0: aload_0 1: lload_1 2: putfield #19; //Field id:J 5: return public long getId(); Code: 0: aload_0 1: invokevirtual #25; //Method id:()J 4: lreturn public java.lang.String getName(); Code: 0: aload_0 1: invokevirtual #28; //Method name:()Ljava/lang/String; 4: areturn public Student(); Code: 0: aload_0 1: invokespecial #34; //Method java/lang/Object."<init>":()V 4: return }