码迷,mamicode.com
首页 > 编程语言 > 详细

java 类,基本类型,反射

时间:2015-09-04 16:53:44      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

1、首先java中每个类对象都有一个类字节码,都属于Class.

  java的9大基本数据类型:int、short、long、float、double、char、byte、boolen和void。它们对应的类与其对应的类对象是不一样的,如int.class==Integer.class返回false,但是Integer包装的基本数据类型是int,因此Integer.Type==int.class返回的是true。判断一个类是否基本数据类型 calss.isPrimitive()。基本数据类型的数组不是基本类型:即int[].class.isPrimitive返回false,int[].class.isArray返回true。

  基本数据类型的数组必须维数和类型相同得到的字节码类型才相同:

  技术分享

 

 

2、java反射,首先反射能够通过类名获取类的字节码,然后获取各个属性,方法,构造方法等类的一切。如下方法:得到了类对象,方法和属性当然可以对对象进行操作了。

 public static void  MyTest(String cl){  //要求用户输入类的全路径
	        
	       try {  
	           Class cla=Class.forName(cl);//根据类的全路径进行类加载,返回该类的Class对象  
	            
           Object o=cla.newInstance();//获取cla的对象,如果有有参数的构造函数则获取它的构造函数,然后创建。前提是对类有一定了解才用反射 Method[] method=cla.getDeclaredMethods();//利用得到的Class对象的自审,返回方法对象集合 for(Method me:method){//遍历该类方法的集合 System.out.println(me.toString());//打印方法信息 } System.out.println("********"); Field[] field=cla.getDeclaredFields();//利用得到的Class对象的自审,返回属性对象集合 for(Field me:field){ //遍历该类属性的集合 System.out.println(me.toString());//打印属性信息 } } catch (ClassNotFoundException e) { e.printStackTrace(); } }

  3、反射作用:最简单的用处 我有很多个对象 每个都不一样 我需要将他们拼接成我要的标准绘图串 不管什么对象 构造有什么区别 我直接反射属性名和属性值进行我要的操作 一个方法适配所有类 没反射你要为每一个类去写一个方法 因为每个类里面的属性名都不一样 不知道属性名就没法写 但有了反射 你一个属性名都不需要知道。比如:数据库里有很多个表格,每一个表格都有自己的属性,且属性的个数也不一样;同时没个表格都有相应的增删改查的操作,若不用反射你就必须每一个表格写一个增删改查的方法,麻烦切代码冗余大。利用反射,把类的参数传递进来(和上面的方法一样),这样得到所有的属性就可以相应的操作,就只需要写一次增删改查了。

java 类,基本类型,反射

标签:

原文地址:http://www.cnblogs.com/bokeofzp/p/4781919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!