zoukankan      html  css  js  c++  java
  • 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,“高企四”);

  • 相关阅读:
    JZOJ 2020.10.6 提高B组反思
    【NOIP2011模拟11.1】钓鱼
    JZOJ【NOIP2012模拟8.9】2020.10.5 T1
    ⑫linux基础命令 过滤 grep
    ⑪linux基础命令 tail
    ⑩linux基础命令 head
    ⑨linux基础命令 cat
    ⑧linux基础命令 rm
    ⑦linux基础命令 mv
    ⑥linux基础命令 cp
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12780052.html
Copyright © 2011-2022 走看看