我已经定义Shape了 为什么forName("Shape")还报错?import java.io.*;
import java.util.*;class Shape { }
public class Main {
    public static void main(String args[]) {
        Shape s = new Shape();  // OK
        Class.forName("Shape"); // ERROR
        
    }
}

解决方案 »

  1.   

    没有吧
    写字本写的 直接复制到JDK bin里面 javac编译报错的
      

  2.   

    javac的时候报错
    应该是编译的时候吧
      

  3.   

    javac 编译的时候 肯定不是语法错误 报哪个类找不到   把错误信息全部贴出来看看
      

  4.   

    javac编译的错误:Main.java:8: 未报告的异常 java.lang.ClassNotFoundException;必须对其进行捕捉或声明以便抛出
            Class.forName("Shape");
                         ^
    1 错误
      

  5.   

    import java.io.*;
    import java.util.*;class Shape { }
    public class Main {
        public static void main(String args[]) throws Exception {
            Shape s = new Shape();  // OK
            Class.forName("Shape"); // ERROR
            
        }
    }抛出异常就可以了
      

  6.   

    楼主难道在看thinking in java第10章?
      

  7.   

    请使用类的完全限定名.如:Class c=forName("java.lang.Enum")
      

  8.   

    这个地方我也觉得有错,因为他在编译的时候写
    Class.forName("Shape"); 
    因为这个时候Shape类的Class根本不存在。所以找不到
      

  9.   

    是不是要先把Shape给编译了.