过分抽象的东西不好理解

解决方案 »

  1.   

    我用过,很好用,可以动态调用函数。具体的操作方法你可以参考JAVA的API。 我当时用的时候是重写java bean的toString方法,打印所有的java的属性。
      

  2.   

    和.Field 一样嘛.不过.Field是属性.而method是方法,它的invoke()就可以该类型的类的方法
      

  3.   

    用到反射机制的时候这是必需知道的,像Field,Method,Construction
      

  4.   


    package com.xyj.test;import java.lang.reflect.Method;
    import java.util.regex.Pattern;
    /**
     * @author Tower
     * @version Sep 9, 2008 9:25:42 AM
     */
    public abstract class TestMethods {
    public static boolean m1(Object str){
    Pattern pattern = Pattern.compile("[0-9]*");
    System.out.println("------------------m1");
            return pattern.matcher(str.toString()).matches();  
    }
    public static boolean m2(String str){
    System.out.println("------------------m2");
    return (str.length()> 3);
    }
    public static boolean m3(String str){
    System.out.println("------------------m3");
    return (str.endsWith("xml"));
    }
    public static boolean m4(String str,String length){
    System.out.println("------------------m4");
    return (str.length() < Integer.parseInt(length));
    }
    public static void main(String args[]){
    try {
    Method [] methods = TestMethods.class.getMethods();
    for(Method me : methods){
    if(me.getName().toString().equalsIgnoreCase("m4")){
    System.out.println(me.invoke(null,"7777","4"));
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }需要注意的就是调invoke方法的时候,方法必须是static