反射,当时经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧!
主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!写了一个反射获取String类属性的例子: - package com.itheima;
- import java.lang.reflect.Field;
- import java.lang.reflect.Modifier;
- public class Reflect {
- public static void main(String[] args) {
- try {
- Class c=Class.forName("java.lang.String");
- Field[] fields = c.getDeclaredFields();
- for(Field field:fields){
- System.out.println(Modifier.toString( field.getModifiers())+" "+field.getType().getSimpleName()+" "+field.getName());
- }
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
复制代码
|