作者darkk6 (Mr. Pan)
看板java
标题Re: [问题] 从String 拿到 任意class的constant
时间Sat May 18 00:50:51 2013
: 我是学了五个月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
1F:→ realmeat:不过我看到的code大多object出来後面再判断 05/18 01:00
2F:→ realmeat:Class.forName用法不错 (笔记 05/18 01:02
3F:→ darkk6:主要是要拿的东西是有明确资料的,所以OK~ 05/18 01:21
4F:推 PBS3:感谢real大与dark大, 获益良多 thx! 05/19 23:50