java动态获得实例类型并创建实例
在java编程中经常遇到这样的问题
1、已经一个类的实例,判断这个实例是不是某个类的对象;
2、已知一个类的实例,想创建一个和此实例类型相同的对象,尤其当这个实例类型可能动态的时候。
?
介绍一个关键字和两个函数
instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。
示例见newInstance;
?
getClass() Returns the runtime class of this Object.即返回一个实例运行时类型。
示例代码如下:
String stringInstance = new String();Object objectInstance = stringInstance.getClass().newInstance(); if (objectInstance instanceof Object)System.out.println("ob是一个Object实例");if (objectInstance instanceof String)System.out.println("ob是一个String实例");
?
输出结果:
?
ob是一个Object实例
ob是一个String实例
参考:
http://download.oracle.com/javase/6/docs/api/java/lang/Class.html#newInstance()
?
至此以上两个问题都解决