反射与JavaBean

    技术2026-04-01  2

    //一种方法加载属性文件 //InputStream ips = new FileInputStream("config.properties"); //另一种方法加载属性文件 注意:该文件放到了src目录下 //InputStream ips = ReflectTest.class.getClassLoader().getResourceAsStream("ZHANG/Reflect/config.properties"); InputStream ips = ReflectTest.class.getResourceAsStream("config.properties"); Properties props = new Properties(); props.load(ips); ips.close(); String classname = props.getProperty("CLASSNAME"); Collection conllections = (Collection) Class.forName(classname).newInstance();

    PropertyDescriptor pd  = new PropertyDescriptor(属性名称,对

    象.getClass);Method methodGetX = pd.getReadMethod();//得到这个get方

    法Object retVal = methodGetX.invoke(对象);//获得方法返回的值

    Method methodSetX = pd.getWriteMethod();//得到set这个方法methodSetX.invoke(对象,值);//获得方法返回的值

    Appche 提供了BeanUtil工具包用它来操作JavaBean,支持属性的级联操作,

    如Date date = new Date(); set方法时候可以用date.time 来设置

    date.setTime()方法.BeanUtil类 BeanUtil类是用字符串形势对bean操作,BeanUtil.setProperty(对象,"属性名","值");PropertyUtil是由属性本身的类型设置和返回的值PropertyUtil.setProperty(对象,"属性名",值);

    JavaBean可以转换成Map

     

     

    ------------------------------

    URL(Uniform Resource Locator)

    静态的导入类的方法import static java.util.Math.abs

    Class.forName("java.lang.String");//得到这个类的字节码

    反射就是把JAVA类中的各个成分映射成相应的类。FieldMethodContructorPackage

    getClass.getDeclaredField("x");//把私有设置成可访问Field.setAccessible(true);//抢占私有成员属性

    hashcode()使hashset()不能添加相同项;如果改变其中值,remove()是不起作用,导致java内存泄漏现象;不改其值可以remove().

     

     

     

    最新回复(0)