package com.thinking.in.java.rtti;import java.util.Random;class Pet {
}class Dog extends Pet {
}class Pug extends Dog {}class Rodent extends Pet {}class Gerbil extends Rodent {}class Hamster extends Rodent {}class Cat extends Pet {}public class PetCount {
private static Random rand = new Random();
static String[] typenames = { "Pet", "Dog", "Pug", "Cat", "Rodent",
"Gerbil", "Hamster" }; public static void main(String[] args) {
Object[] pets = new Object[15];
try {
Class<?>[] petTypes = { Class.forName("Dog"),Class.forName("Pug"),
Class.forName("Cat"), Class.forName("Rodent"),
Class.forName("Gerbil"), Class.forName("Hamster") };
for (int i = 0; i < pets.length; i++) {
pets[i] = petTypes[rand.nextInt(petTypes.length)].newInstance();
}
} catch (Exception e) {
System.out.println(e);
}
}}
怎么调用函数Class.forName("")一直错误,望高手指导
}class Dog extends Pet {
}class Pug extends Dog {}class Rodent extends Pet {}class Gerbil extends Rodent {}class Hamster extends Rodent {}class Cat extends Pet {}public class PetCount {
private static Random rand = new Random();
static String[] typenames = { "Pet", "Dog", "Pug", "Cat", "Rodent",
"Gerbil", "Hamster" }; public static void main(String[] args) {
Object[] pets = new Object[15];
try {
Class<?>[] petTypes = { Class.forName("Dog"),Class.forName("Pug"),
Class.forName("Cat"), Class.forName("Rodent"),
Class.forName("Gerbil"), Class.forName("Hamster") };
for (int i = 0; i < pets.length; i++) {
pets[i] = petTypes[rand.nextInt(petTypes.length)].newInstance();
}
} catch (Exception e) {
System.out.println(e);
}
}}
怎么调用函数Class.forName("")一直错误,望高手指导
把package com.thinking.in.java.rtti;
去掉就好了,你试试。
也可以在加载类的那边加上包名目录
这个就是类源,你可以看jdk中的class。forname("");z这个函数啊,看下它的参数是怎么样的就是啦。。这个在java反射中是常用的 指明java实体类的方法。总之呢,,,就是类全名就对啦。参考jdk中的函数。。仔细研究下平时习惯翻看jdk就ok啦、。