导航:首页 > 编程语言 > java获得所有子类

java获得所有子类

发布时间:2024-03-02 19:56:52

1. java中一个 类.class 发法 获取的描述类的对象,是 否 可以找到其 所有的子类 的名称

下面是能判断是否指定类的子类。但是要想全部查询。
这个不太可能吧。

Class c = ArrayList.class;
c.isPrimitive(); //判断c是否为基本数据类型
c.isAssignableFrom(List.class); //判断c是否是List类的子类或父类
c.getGenericType(); //得到泛型类型

不过呢。你可以看看 eclipse 中的实现。就是你点击一个类。然后按 F4 就能从 "Type Hierarchy"。就能看到所有子类了。你可以搜搜看。

2. java父类如何获得所有子类的名称

java中子类可以获取父类,是因为java语言规范强制要求所有非object类必须有父类,类在回编译的时候,父答类唯一确定,编译器会将父类的引用记录在class文件里面。
反过来,编译器不会给你记录子类,想要获取,只能自己根据情况实现。比如在加载一个类的时候添加判断,或者强制要求这些类满足特定的条件,通过这个条件去获取类的名称

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

你要的就是通过类名实例化类吧,这个:str为类名称,返回的Object强制转化一下就行。
public Object NewClass(String str) {
Object obj = null;
try {
obj = Class.forName(str).newInstance();
}catch(Exception ex) {
e.printStackTrace();
}
return obj;
}

4. java 父类如何在运行期动态获取子类类名

给你写了3个类:

A类:

packagecn.test;
publicclassA{
publicvoidtest(){
System.out.println(this.getClass());
System.out.println(this.getClass().getSimpleName());
System.out.println(this.getClass().getName());
}
}

B类:

packagecn.test;
publicclassBextendsA{

}

Test类:

packagecn.test;
publicclassTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Bb=newB();
b.test();
}
}

结果:

class cn.test.B
B
cn.test.B
你要知道,在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来时的那个类型的实例对象,所以在父类中你可以中this获取到子类的信息!

不止一层继承关系时,你可以根据下面:

A类:

packagecn.test;
publicclassA{
publicvoidtest(){
System.out.println(this.getClass());
System.out.println(this.getClass().getSimpleName());
System.out.println(this.getClass().getName());
System.out.println(this.getClass().getSuperclass());
System.out.println(this.getClass().getSuperclass().getSimpleName());
System.out.println(this.getClass().getSuperclass().getName());
}
}

B类:

packagecn.test;
publicclassBextendsA{
B(){
//System.out.println("B......");
}
}

C类:

packagecn.test;
publicclassCextendsB{
C(){
//System.out.println("C...........");
}
}

Test类:

packagecn.test;
publicclassTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Cc=newC();
c.test();
}
}

结果:

class cn.test.C
C
cn.test.C
class cn.test.B
B
cn.test.B

阅读全文

与java获得所有子类相关的资料

热点内容
如何设置微信数据增加 浏览:95
excel文件不再增大 浏览:613
ug编程刀路怎么复制不用鼠标选取 浏览:97
excel文件打开扩展名错误 浏览:10
阿里巴巴怎么做数据包 浏览:442
无线网络连接一直显示未连接 浏览:25
windows7如何自动激活工具下载 浏览:57
天语救砖工具 浏览:839
网络体育课程有哪些 浏览:19
苹果微信怎么查看文件 浏览:165
安卓nba2k14面补替换 浏览:450
路由器密码定时换 浏览:626
aicc恢复文件在哪里 浏览:167
怎么查无线网络属性 浏览:874
只狼的声音文件放在哪里 浏览:219
lol盒子修复在哪个文件夹 浏览:308
表格里的公章怎么导入到pdf文件上 浏览:844
怎样删除u盘不能删除的文件 浏览:712
软件编程岗位怎么找 浏览:120
数字编程工程师是什么专业 浏览:489

友情链接