Java中的反射 - ClassCastException

时间:2014-12-21 17:23:25

标签: java class object reflection

import java.lang.reflect.*;


class Start
{
  public static void main( String[] argv ) 
  {
      String me, klasa;
      Object arg;
      Method met;

      int v=argv.length-1;
      int argc =argv.length;

      if ( argc == 0 ) {
          System.err.println( "err!!!");
          return;
      }

      try 
      {   while (argc!=0)
      {
          Class<?> c = Class.forName(argv[v]);
          klasa = (String) c.newInstance();

          Method[] m = InfoInterface.class.getMethods();

          arg =  m[2].invoke(c.newInstance());
          me = (String) m[1].invoke(c.newInstance());
          klasa = (String) m[0].invoke(c.newInstance());                  

          met = klasa.getClass().getMethod(me, String.class);
          met.invoke(klasa, arg);
          --argc;
      }    

      }
      catch ( Exception e ) { System.out.println(e) ; return; }
    }
}

我不知道为什么在这段代码中显示了ClassCastException。我从小时开始搜索错误,我不知道它有什么问题。请帮帮我!

要编程的课程通过推荐行添加。

1 个答案:

答案 0 :(得分:2)

这很奇怪。你想做什么?

我认为,你试图在其中一行中将一些Object转换为String:

Class<?> c = Class.forName(argv[v]);
me = (String) m[1].invoke(c.newInstance());
klasa = (String) m[0].invoke(c.newInstance());

取决于InfoInterface有哪些方法。