看板 java 關於我們 聯絡資訊
: 我是學了五個月java的小小 : 就我最近碰到的, 剛好可以獻醜 : 基本上呢你的className要改, 原本那樣是不行的 : 要改成這樣 : className = "java.lang.Math"; : Type沒有用 : 然後... Magic... : public class Test { : public static void main(String args[]) throws Exception{ : String className = "java.lang.Math"; : String constName = "PI"; : Object obj = : Test.class.getClassLoader().loadClass(className).getDeclaredField(constName).get(null); : System.out.print(obj); : } : } 作為交流 其實可以稍微改一下 import java.lang.reflect.*; public class TEST{ public static void main(String[] args) throws Exception{ Class cls=Class.forName("java.lang.Math"); Field field=cls.getField("PI"); double math_PI=field.getDouble(null); System.out.println(math_PI); } } reflect 也可以存取 private member,某種層面上來看是還蠻強大的XD ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.194.188
realmeat:不過我看到的code大多object出來後面再判斷 05/18 01:00
realmeat:Class.forName用法不錯 (筆記 05/18 01:02
darkk6:主要是要拿的東西是有明確資料的,所以OK~ 05/18 01:21
PBS3:感謝real大與dark大, 獲益良多 thx! 05/19 23:50