通过类名字符串获取类方法怎么实现

解释一下:

比如我有字符串
s = 'Album'
,如何使用Album的类方法(如Album.find)

应为s是变量,可能是'Article'或者其他类名。

可以分两步完成:
1)格式化字符串:
一般使用classify方法:[code="ruby"]
"users".classify #=> "User"[/code]
创建一个Rails模型表名称。请注意,这返回一个字符串,而不是一类。 (转换为实际的类按照分类的constantize。)
也可以使用 titleize,
[code="ruby"]"user" #=> "user"
"user_phones".titleize #=> "User Phones"[/code]
titleize 仅把单词手字母大写化,注意单复数和多个词之间的空格.

2)转换成类名字:constantize

[code="ruby"]"users".classify.constantize.find()[/code]

使用java的反射机制,可以获取类中的方法。
[code="java"]
try {
//获取Class对象
Class c = Class.forName(s);

        //解析方法信息
        Method[] ms = c.getDeclaredMethods();
        for(Method m : ms){
            System.out.println("----------------------------------------------");
            System.out.println("方法:" + m.toString());             
            System.out.println("\t方法名:" + m.getName());
            int mod = m.getModifiers();             
            System.out.println("\t方法修饰符:" + Modifier.toString(mod));
            System.out.print("\t方法参数列表:");
            Class pts[] = m.getParameterTypes();
            for (int i = 0; i < pts.length; i++) {
                Class class1 = pts[i];
                if(i != 0 )
                    System.out.print(", ");
                System.out.print(class1);
            }   
            System.out.println();
            System.out.println("\t返回值类型:" + m.getReturnType());
        }   
    } catch (ClassNotFoundException e) {            
        e.printStackTrace();
    }

[/code]