以下程序,在Netbeans6.1下编译运行完全没有问题;而命令行下用Javac编译通过,运行则抛出异常,JDK平台均为1.6public class Test {
   public static void main(String arg[]){
      class Foo{
         public int i = 3;
      }
     Object o = (Object)new Foo();
     Foo foo = (Foo)o;
     System.out.println(" i = " + foo.i);
   }
}

解决方案 »

  1.   

    异常如下:
    Exception in thread "main" java.lang.ClassCastException: Test$1Foo cannot be cast to Object
    at Test.main(Test.java:6)说明:
    1、编译平台jdk1.6.07
    2、cmd下通过javac编译本程序得到的Test.class共724字节,通过java执行抛出上述异常
    3、NetBeans下编译得到的Test.class共875字节,能通过java命令解释
      

  2.   

    java.lang.ClassCastException  类转换异常 
      

  3.   

    我在ECLIPSE 下 JDK 1.5 不知道怎么不抱错
      

  4.   

    3、NetBeans下编译得到的Test.class共875字节
    NetBeans下编译下包含调试信息,去除调试信息该只有622字节
      

  5.   

    我这里也不报错啊 我是jdk1.5的啊,
    你把你jdk里面有个src.zip压缩文件解压一下试试,可能是这个问题
      

  6.   

    java.lang.ClassCastException异常为:向下转换,或是强行转换的异常。但我在命令行下运行没有报任何异常,可以执行出结果 “i=3”。
      

  7.   

    设你的 jdk安装目录为c:\jdk命令行运行时需设置classpathset classpath=c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jarjava Test
    或用参数指明java -cp c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jar TestIDE都自动设置classpath,因此正常。
      

  8.   

    另外,1.5会自动找jdk的class,1.6要自己设。