- javap -private {class name}
example : javap -private Learn_2_1.class
使用Intellij IDEA 14 ,開發scala (未使用sbt),IDE會將scala轉成 .class檔,會放置out資料夾中,此時就可使用 javap -private {class name} 來查看scala 如何將 scala轉成 java程式碼。
另外在反編譯上有個好用的JAD(Java Decompiler) 一個小咖啡杯,只要將要反編譯的拖拉過去就可以看到結果啦。
JAD:
- wiki : http://en.wikipedia.org/wiki/JAD_(JAva_Decompiler)
- tools : http://jd.benow.ca/
- tools : http://www.brouhaha.com/~eric/software/mocha/
實際範例:
scala 的 Class
package learn2 /** * Created by ocean on 2015/5/12. *///scala calass 參數會直接變成 類別的變數class Learn_2_1 (val year : Int){ private var milesDriven : Int = 0 def miles() = milesDriven def drive(distance:Int): Unit ={ milesDriven += Math.abs(distance) } }
//在終端機中使用 javap 命令的結果
javap -private Learn_2_1.class
Compiled from "Learn_2_1.scala"
public class learn2.Learn_2_1 {
private final int year;
private int milesDriven;
public int year();
private int milesDriven();
private void milesDriven_$eq(int);
public int miles();
public void drive(int);
public learn2.Learn_2_1(int);
}
沒有留言:
張貼留言