public class dd{
public StringBuffer okgo(Object tablenamed) {
tablenamed aa=new tablenamed(); 
}
}
public class Test{
public String ss="sfsfsdsfsd";
}tablenamed 为类的名称,我要在这个方法里创建一个新传进来的方法能实现吗,  实际的做法 比如:
public StringBuffer createShow_caption(Object tablenamed) {
Test aa=new Test();  ///Test 为实际上存在的类名,在上面里被做为参数传进去了,,
public static void main(String[] arg){
dd d=new dd();
d.okgo("Test");
)能不能实现这个问题呢

解决方案 »

  1.   

    可以,采用java的反射机制就可以了Class c = Class.forName("java.lang.String");
    Object b  = c.newInstance();b就可以获得这样就可以动态的加载类了,不知道是否符合你的要求
      

  2.   

    Class c = Class.forName("这个是项目的类名");
    Object b = c.newInstance();///能得出相关的类引用吗如:b dd=new b();
      

  3.   

    没问题,利用反射机制非常容易
       public static void reflect(String className,Object classObject,String methodName,
       String[] argTypeNames,Object[] args) throws Exception{
       Class cls = Class.forName(className);
       Class[] argTypes = new Class[argTypeNames.length];
       for(int i=argTypes.length-1;i>=0;i--){
       argTypes[i] = Class.forName(argTypeNames[i]);
       }
       Method method = cls.getMethod(methodName,argTypes);
       method.invoke(cls.cast(classObject),args);
       }
    上面这个方法就可以根据给定的类名、类对象、方法名、方法参数类型数组、方法参数数组来执行指定类的指定方法,并使用给定的参数不过反射机制的运行效率较低,虽然经过多次改进,最好的效率也不过是普通方法的一半