java 反射 classLoder

   虽然已经用了java一年多了,但是总觉得不是很深入,最近又开始重新温故下java的基础知识。
    在一次代码复查的讨论会上,大家讨论到了java的反射,说实话,写代码很少用到。只是了解spring等好多框架底层的实现都用到反射。于是乎开始在网上狂搜资料,给自己补补。
    Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。 能够在程序运行时,通过反射知道该类的属性,方法。
   
public class Dumps {   
  
    public static void main(String args[]) {   
        String className = "cn.com.huaying.Dumps";   
          try {   
              Class c = Class.forName(className);   
              Class ptypes[] = new Class[2];   
              ptypes[0] = Class.forName("java.lang.String");   
              ptypes[1] = Class.forName("java.util.List");   
              Method m = c.getMethod("func",ptypes);   
              Object obj = (Object)c.newInstance();   
              Object arg[] = new Object[2];   
              arg[0] = new String("Hello world");   
              List list = new ArrayList();   
              list.add("val1");   
              list.add("val2");   
              arg[1] = list;   
              Object r = m.invoke(obj, arg);   
              System.out.println(r.toString());   
  
          } catch (Throwable e) {   
              System.err.println(e);   
          }   
               
      }   
       
    public String func(String s, List list){   
        System.out.println("func invoked");   
        for(int i=0;i<list.size();i++){   
            s = s+" "+list.get(i).toString();   
        }   
        return s;   
  
    }   
}  

你可能感兴趣的:(java,spring,C++,c,C#)