呵呵,不可能啦
任意类实例.out();
你这句就要你有个类才可以的
没有类那个有实例啊
怎么都得申明类出来
不过你可以把这个out method定义为static
直接用类名调用算了

解决方案 »

  1.   

    什么意思?不太明白!
    是不是可以把类里面的out()方法都作为static来处理?
      

  2.   

    楼主还是没有理解以下几个概念,若你理解了就知道可能不?1、Java中为什么要 import 类?2、Static 类和非Static类的区别?
      

  3.   

    如果把out()做static来处理也可以,不过这是次要的,主要的是怎么样动态的调用一个有out()方法的类。
    比如有这样几个类:a.class,b.class,c.class,...run.class;
    a,b,c...类中都有一个out()的方法,
    java run a
    我就可以调用a中的out方法
    java run b
    我就可以调用b中的out方法
    以此类推...
    这样说大家明白吗?
      

  4.   

    interface就可以,例如interface If { 
       void out(); 
    }class anyclass implements If{
       public void out()
       {
           //实现的代码
       }
    }public class test
    {
        public void test();
        public static void main(String[] args)
        {
          ...;//这里是要实现的;
          If Ac = new anyclass(); //或者创建一个ArrayList,把实现了If的类的实例按照要求加进来,
       Ac.out();               //再调用每个元素的out()。
        }
    }
      

  5.   

    try:interface iTest{
      public void out();
    }class A implements iTest{
      public void out(){
        System.out.println("A::out");
      }
    }class B implements iTest{
      public void out(){
        System.out.println("B::out");
      }
    }public class TestMain{
      public static void main(String[] args) throws Exception{
        Class c = Class.forName(args[0]);
        iTest t = (iTest)c.newInstance();
        t.out();
      }
    }
      

  6.   

    如果有构造函数的话,可以先调用java.lang.Class的getConstructor方法后获得Constructor对象,然后调用Constructor的newInstance方法可以生成对象.BTW: 上面的代码运行时:
      $ java TestMain A
    或是
      $ java TestMain B
      

  7.   

    用Java Reflect API,前面有人说过,就是从类名字符串构造实例,然后调用out方法。
      

  8.   

    上面更正为Java Reflection API, copy一段tutorial里面的代码给你看看。
    import java.lang.reflect.*;class SampleInvoke {   public static void main(String[] args) {
          String firstWord = "Hello ";
          String secondWord = "everybody.";
          String bothWords = append(firstWord, secondWord);
          System.out.println(bothWords);
       }   public static String append(String firstWord, String secondWord) {
          String result = null;
          Class c = String.class;
          Class[] parameterTypes = new Class[] {String.class};
          Method concatMethod;
          Object[] arguments = new Object[] {secondWord};
          try {
            concatMethod = c.getMethod("concat", parameterTypes);
            result = (String) concatMethod.invoke(firstWord, arguments);
          } catch (NoSuchMethodException e) {
              System.out.println(e);
          } catch (IllegalAccessException e) {
              System.out.println(e);
          } catch (InvocationTargetException e) {
              System.out.println(e);
          }
          return result;
       }
    }
      

  9.   

    St0ne82() 感谢你的思路,正合我的意思。也感谢其他人的参与。我本来没有想到有这样的麻烦的,也许分给大家的分会少一点,请不要在意。
      

  10.   

    因为我的对java了解不是很深,能不能给我介绍一本专门介绍java对象的书呢?在下不胜感激。