例如:
List list;如果list被指向一个实例对象了,则可以利用getclass().toString()来获取。
但是如果list本身为空呢?有没有办法得到定义它的类名?
List list;如果list被指向一个实例对象了,则可以利用getclass().toString()来获取。
但是如果list本身为空呢?有没有办法得到定义它的类名?
解决方案 »
- 关于存储过程 out参数获得 有些不明白 大家帮解释 一下
- 问一个关于Jtable的问题!
- java中的一个字符编码问题
- 用J2SE如何实现拷贝一个文件夹和他里面的所有东西
- DOM4J解析XML的时候,怎么清楚node的内容
- 关于Socket编程,有经验的大哥帮我看看
- 我的IE6不能识别〈APPLET〉标记,应如何处理?
- 用一个ArrayList来实现 AbstractMap,加第二个MPair时就出错了,不知是怎么一回事
- 如何把字符串转成INT型?
- 在Applet中画线(drawLine)的时候,能不能将画的线粗一点??
- 求教一个关于split分割字符串以后赋值的问题,多谢了!
- 关于这句SQL语句的错误
你不是想取null的类名吧。
没有赋值的话连null也不是。虽然从原理上讲似乎是不行,但我想既然java是强类型语言,定义了就应该可以知道它的类名。
Spring为何能将符合bean规则的类进行属性依赖注入,我觉得其中肯定需要判断类属性的类类型。
不知道Spring如何实现,反正也肯定是反射,搞定了这个我基本已实现了自己的Ioc。
当然我现在还研究的很浅,远不能和Spring的Ioc比,我这里是单层的解析,仅作研究,没有显摆的意思。下面是部分源代码(整个Ioc的实现代码我就不提供了太大,其实也不难,真可以自己研究一下搞定),有兴趣的朋友可以继续研究。当然也可以自己去查看spring源代码。import java.lang.reflect.Field;
import java.util.Date;public class reflectTest {
private int i;
private Integer integer;
private String string;
private Date date;
//private *** *****; 自定义类的定义,你自己定义几个吧 public static void main(String[] args) throws Exception {
reflectTest reflectTest = new reflectTest();
Field[] fields = Class.forName(reflectTest.getClass().getName()).getDeclaredFields();
for(Field field : fields) {
System.out.println(field.getName() + "的类型为" + field.getType().getSimpleName());
}
}
}
如果需要完整类名可用getName方法。
但包含它的类名也可以获取:field.getDeclaringClass()
还有,获取类型和类是否实例化无关。你仔细看我的源代码就知道了。
Class.forName(reflectTest.getClass().getName()).getDeclaredFields();
红色部分可用文本代替。反射部分在获取类时用的是类名,不用实例化。我只是为了能够运行起来才这么些代码的。
不要想当然了,仔细品味源代码。