zoukankan      html  css  js  c++  java
  • Java反射 调用传参

    反射是java的一个特性,这一特性也使得它给了广大的第三方框架和开发过者很大的想像空间。

      通过反射,java可以动态的加载未知的外部配置对象,临时生成字节码进行加载使用,从而使代码更灵活!可以极大地提高应用的扩展性!

    //测试方法    
     @Test
    public void test01() {
    Class p = null;
    Person01 person01 = new Person01();
    try {
    p = Class.forName("pojo.Person01");
    // 第一个参数是类的方法名 第二个是需要传的参数
    Method method = p.getMethod("returnName", String.class);
    String aa = (String) method.invoke(person01, "123");
    Method method2 = p.getMethod("returnId", Integer.class);
    String bb = (String) method2.invoke(person01, 123);
    // 多个参数
    Class [] argTypes = new Class[2];
    argTypes[0]= String.class;
    argTypes[1] = Integer.class;
    Method methods = p.getDeclaredMethod("getDouble",Integer.class,String.class);
    Object [] objects = new Object[2];
    objects[0] = "test";
    objects[1] = 123;
    String cc = (String) methods.invoke(person01,123,"123");

    System.out.println(aa);
    System.out.println(bb);
    System.out.println(cc);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
     

     实体类

    package pojo;
    
    import lombok.Data;
    
    /**
     * @author xulei
     * @version 1.0
     * @date 2020/4/28 16:03
     */
    @Data
    public class Person01 {public String  returnName(String string){
            return name+"___"+string;
        }
        
        public String returnId(Integer integer){
            return id+"___"+integer;
        }
        
        
        public String getDouble(Integer integer,String string){
            return string+"___"+integer;
        }
    }
  • 相关阅读:
    KMP的next[]数组
    [Gauss]HDOJ3976 Electric resistance
    [Gauss]POJ2065 SETI
    [Gauss]POJ2947 Widget Factory
    更好的 SQL 模式的 10 条规则
    BZOJ2460: [BeiJing2011]元素
    BZOJ2115: [Wc2011] Xor
    洛谷P3164 [CQOI2014]和谐矩阵
    POJ1222熄灯问题
    POJ1830开关问题
  • 原文地址:https://www.cnblogs.com/lovetl/p/12795703.html
Copyright © 2011-2022 走看看