• Java的反射机制一


    Java具有一定的动态性,我们可以利用反射机制,字节码操作来获得类似动态语言的特性。
    动态操作对象,构造方法,属性,方法
    Demo2
    如何取得属性和方法以及构造器
    public class Demo2
    {
    public static void main()
    {
    String path = “class.jeeleaning.servlet.User”;
    Class clazz = Class.forName(path);
    //获取属性
    Field[] fields = clazz.getDeclaredFields();
    Field f = clazz.getDeclaredField("uname);
    //获取方法
    Method[] methods = clazz.getDeclaredMethods();
    Method m =clazz.getDeclaredMethod(“getUname”,对应参数的类对象 :null,或Strin.class);
    //构造器
    Constructor[] constructors = clazz.getConstructors();
    Construct c1 = clazz.getConstructor(对应参数的类对象和获取方法类似);

    Demo3
    通过反射API动态操作,属性,方法,构造器
    public class Demo3
    {
    public static void main(String[] args)
    {
    Class clazz = class.forName(path);
    //通过反射API调用构造方法,构造对象;
    User u1 = clazz.newInstance();//调用无参数的构造器
    //注意javabean中运用反射机制时,都需要定义一个无参数的构造器
    Construct c = clazz.getDeclaredConstruct(String.class,int.class)
    c.newInstance(“linminhao”,2);
    //通过API调用方法
    Method method = clazz.getDeclaredMethod(“setName”,String.class);
    method.invoke(u1,“高企三”);
    //通过API调用属性
    Field f= clazz.getDeclaredField(“uname”);
    f.set(u1,“高企四”);

  • 相关阅读:
    System.arraycopy()的用法?
    Java当中“+=”和“=+”的区别
    jsp FN 标签库的使用方法
    手作编辑画面处理
    mpfu 位编辑处理?
    5/14 自动跟新 位数编集 百分号添加 手作部品。
    jsp 4-14 知识总结
    jstl split 分割字符串?
    aws vpc 知识总结(助理级)
    典型的软件自动化测试框架
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12780052.html
Copyright © 2020-2023  润新知