Java反射

package com.imooc.reflect;

import java.lang.reflect.Method;

public class MethodDemo1 {
    public static void main(String[] args) {
        A a1 = new A();
        //先得到类类型  在得到方法  
        //1对象.  2类名.class     3 classforname
           Class c = a1.getClass();
           
         try {
            Method m = c.getMethod("print",new Class[]{String.class,String.class});
            Object o = m.invoke(a1,new Object[]{"hello","WORD"});
            
            
            
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        
        }
        
    }
    
    
    
}

class A{
    public void print(){
        
        System.out.println("=========");
    }
    
    public void print(int a,int b){
        System.out.println(a+b);
    }
    
    public void print(String a, String b){
        System.out.println(a.toUpperCase()+" "+b.toLowerCase());
        
    }
}

List<String> 

反射可以绕过编译      这个时候加一个String 是为了我们添加的时候如果类型不对  编译无法通过会报错   实际在运行的时候是去掉类型的

原文地址:https://www.cnblogs.com/amurzet/p/6551057.html