RTTI-CLASS
2024-08-25 20:20:17
package com.xt.test; interface Test1Interface { } interface Test2Interface { } class Test1 implements Test1Interface, Test2Interface {
static {
System.out.println("Test1--Class");
} public void print() {
System.out.println("print111!");
}
} public class ClassTest {
public static void main(String[] args) {
try {
Class<?> c = Class.forName("com.xt.test.Test1");
Test1 cc = (Test1) c.newInstance();
cc.print();
System.out.println("isInterface:" + c.isInterface());
// 打印类加载器的路径
System.out.println("ClassLoader->Path:"
+ c.getClassLoader().getResource("").getPath());
// 打印class文件的路径
System.out.println("Class->Path:" + c.getResource("").getPath());
// 含包名的类名
System.out.println("CanonicalName:" + c.getCanonicalName());
System.out.println("----------------------");
// 实现的接口
for (Class<?> cla : c.getInterfaces()) {
System.out.println("Class->Path:"
+ cla.getResource("").getPath());
System.out.println("isInterface:" + cla.isInterface());
}
// 得到父类,打印父类的名字
Class<?> spuerClass = c.getSuperclass();
System.out.println("superClassName:" + spuerClass.getName());
System.out.println("----------------------");
// Class.cast用法
Number n = new Integer(5);
Class<Integer> i = Integer.class;
Integer ii = i.cast(n);
System.out.println(ii);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
类字面常量XXX.class比Class.forName("")更安全,更效率,注意,使用.class来创建对Class对象的引用的时候不会自动初始化该Class对象.
最新文章
- Struts2 使用jQuery实现Ajax
- poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
- Java JDK的安装以及环境变量的配置
- [POJ2002]Squares(计算几何,二分)
- 要源码的快来啊,价值500的OA商业源码免费送给大家,望大家年底奖金多多......
- vim file save as
- Android笔记之 文件保存、压缩与清空删除
- 图片拉伸(有保护区域) resizableImageWithCapInsets
- IOS_FMDB有关字典、数组存储及获取问题
- 【Android Developers Training】 66. 添加动画
- LeetCode 380. Insert Delete GetRandom O(1) (插入删除和获得随机数 常数时间)
- iOS学习——获取iOS设备的各种信息
- vim编辑器详解(week1_day3)--技术流ken
- python之collection模块
- Qt 比对TreeItem节点
- python通配符之glob模块
- 静态和实例方法区别-java
- 12c rac On redhat 7
- 02: docker高级篇
- Python类的构成元素