请问java中有没有方法可以遍历一个父类的所有子类啊?

比如说吧...有一个Shape的父类...
下面又几个子类Line,Circle什么的...
然后要遍历这些个子类的名字...
要达到的效果就是,如果输入的一个String等于遍历到的某一个子类的名字,那就new一个新的子类,要的就是这个方法
可以不?

UPDATE:
看楼主补充里的意思,应该最终目的是new出子类的实例,我有一个思路,楼主可以试试看——
既然要new出子类的实例来,那就要improt子类所在的包,所以只要遍历引入的包中的类就可以,遍历包中类的方法网上有,楼主可以自己找,我这里只说思路。
然后判断输入的String是否跟遍历到的类名匹配,如果匹配,再用getSuperClass()方法获取其父类,判断这个父类是不是Shape,如果是,new出那个子类的实例。

===============
无解,反射倒是可以取到父类,但要遍历子类是不行的。
但若父类是自己定义的类,倒是可以做到。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-02
有,只是你需要遍历所有在classpath中的类,然后一个个的 进行校验:
class.isInstanceof(o)
遍历classpath时需要注意有两种形式的类:
1 文件夹下的类文件;
2 jar包中的类文件。
不同的存在形式需要以不同形式去读取
第2个回答  2010-06-02
你要的就是通过类名实例化类吧,这个:str为类名称,返回的Object强制转化一下就行。
public Object NewClass(String str) {
Object obj = null;
try {
obj = Class.forName(str).newInstance();
}catch(Exception ex) {
e.printStackTrace();
}
return obj;
}本回答被提问者采纳
第3个回答  2010-06-02
首先你要有一个子类和不是子类的集合
list<object> = arraylist;
去遍历
然后用
if (子类对象 instanceof 父类类名) {
//你的操作
}else{
//你的操作
}
第4个回答  2010-06-02
没有这个方法.
但是是可以实现的.
相似回答