Java是一個支持反射的語言,從誕生的那一刻起就已經支持了反射。經典的反射代碼能夠這樣寫:java
可是從Java7開始,JDK中又多了一個功能相似的成員,java.lang.invoke.MethodHandle。先來看看MethodHandle又是怎麼用的:函數
綜上,MethodHandle更像是在Java語法規則內手寫字節碼:本身建立方法簽名(MethodType),本身決定調用方式(invokestatic/invokespecial/invokevirtual),本身注意訪問控制(public/package/protected/private),最後還要本身決定類型隱式轉換;而Method權限則大得多。雖然MethodHandle能力相對受限,不過性能確高了不少(二者的實現對比解析待續…)。性能