黑马程序员技术交流社区
标题:
关于内省的问题
[打印本页]
作者:
136616244
时间:
2014-8-10 21:43
标题:
关于内省的问题
// public static void getMethodDemo() throws Exception {
//
// String className = "cn.itcast.domain.Person";
// Class clazz = Class.forName(className);
//
// String methodName = "getName";
//
// Method method = clazz.getMethod(methodName, null);
// Object obj = clazz.newInstance();
// String value = (String)method.invoke(obj, null);
// System.out.println(value);
// }
public static void getMethodDemo() throws Exception {
person p = new Person();
PropertyDescripteror pd = new PropertyDescriptor("name",person.class);
Method m = pd.getReadMethod();
String value = (String)m.invoke(p, null);
System.out.println(value);
}
}
复制代码
这两段代码一个是用反射调用方法,一个是用内省的来调用的,看不出用内省有啥好处和方便的?
作者:
liwugang
时间:
2014-8-10 21:51
用在的方面不一样
作者:
陈云阳
时间:
2014-8-10 22:07
liwugang 发表于 2014-8-10 21:51
用在的方面不一样
你说了一句废话:lol
作者:
fantacyleo
时间:
2014-8-10 22:42
内省底层就是调用反射的API实现的,所以即使不提内省的概念,也能用反射实现其功能。但是,使用内省,你只需要知道属性名,而不用去拼写方法名,至少减少了出错的可能性吧?要知道,你在反射中把方法名拼写错了,那可不是编译器能检查出来的,而是要到运行时才会抛异常的,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2