/** *Class对象使用实例,来源《Think in Java》 */ package typeinfo.toys; interface HasBatteries{} interface Waterproof{} interface Shoots{} class Toy{ Toy(){} Toy(int i){} } class FancyToy extends Toy implements HasBatteries,Waterproof,Shoots{ FancyToy(){super(1);} } public class ToyTest{ static void printInfo(Class cc){ System.out.println("Class name: "+cc.getName()+" is interface?["+cc.isInterface()+"]"); System.out.println("Simple name: "+cc.getSimpleName()); System.out.println("Canonical name: "+cc.getCanonicalName()); } public static void main(String[] args){ Class c = null; try{ c = Class.forName("typeinfo.toys.FancyToy"); }catch(ClassNotFoundException e){ System.out.println("Can't find FancyToy"); System.exit(1); } printInfo(c); for(Class face:c.getInterfaces()) printInfo(face); Class up = c.getSuperclass(); Object obj = null; try{ obj = up.newInstance(); System.out.println(obj); System.out.println(c.newInstance()); }catch(InstantiationException e){ System.out.println("Canot instantiate"); }catch(IllegalAccessException e){ System.out.println("Canot access"); System.exit(1); } printInfo(obj.getClass()); } }