在java中,每个class都有一个相应的Class对象,当编写好一个类,编译完成后,在生成的.class文件中,就产生一个Class对象,用来表示这个类的类型信息。获得Class实例的三种方式:

1). 利用对象调用getClass()方法获取该对象的Class实例
2). 使用Class的静态方法forName(),用类的名字获取一个Class实例
3). 运用.calss的方式获取Class实例,对基本数据类型的封装类,还可以采用.TYPE来获取对应的基本数据类型的Class实例。

其中getClass和.class区别在如下:
abstract class PersonInfo {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

public class ManInfo extends PersonInfo {
private int height;
public int getHeight() {
return height;
}

public void setHeight(int height) {
this.height = height;
}

public static void main(String[] args) {
PersonInfo personInfo = new ManInfo();
System.out.println(personInfo.getClass().getName());
System.out.println(PersonInfo.class.getName());
}
}

运行结果:

com.coship.test.ManInfo
com.coship.test.PersonInfo

  // 使用Class的静态方法forName(),用类的名字获取一个Class实例
    try {
      Class c2 = Class.forName("Point");
      System.out.println(c2.getName()); // 结果:Point
      Point pp = (Point) c2.newInstance(); //一旦某个类型的Class对象已经被加载到内存,就可以用它来产生该类型的所有对象。
      //newInstance()调用类中缺省的构造方法。
      pp.output();
    } catch (Exception e) {
      e.printStackTrace();
    }

采用.TYPE来获取对应的基本数据类型的Class实例:

  // 运用.calss的方式获取Class实例(基本类型)
  Class c4 = int.class;
  System.out.println(c4.getName()); // 结果:int

  // 运用.class的方式获取Class实例(基本数据类型的封装类)
  Class c5 = Integer.TYPE;
  System.out.println(c5.getName()); // 结果:int
  Class c6 = Integer.class;
  System.out.println(c6.getName()); // 结果:java.lang.Integer

转载于:https://www.cnblogs.com/shz365/p/3570926.html

获取Class对象方式相关推荐

  1. webservice服务器端获取request对象的三种方式

    有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...

  2. 获取Class对象的三种方式

    获取Class对象的三种方式 Object --> getClass() 通过对象.getclass 任何数据类型(包括基本数据类型)都有一个"静态"的class属性 通过类 ...

  3. Java动物类enjoy方法打印_Java反射学习-2 - 获取Class对象的三种方式

    1 packagecn.tx.reflect;2 3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 imp ...

  4. 反射应用和获取Class对象的三种方式

    一.写一个"框架",可以创建任何对象运行任何方法 1.配置文件 2.使用类加载器ClassLoader,Properties集合是可以和IO流结合使用完成读取和写入数据的集合,方法 ...

  5. 获取随机数的方式Random类对象的方法 java 0913

    获取随机数的方式Random类对象的方法 java 0913 Random类 实例化这个类得到一个对象 利用对象的方法获取整数 代码 import java.util.Random;public cl ...

  6. java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)

    Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...

  7. java反射获取实体类_java 反射获取类对象的三种方式

    Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...

  8. 【大数据开发】SparkSQL——RDD、DataFrame、DataSet相互转换、DSL常用方法、SQL风格语法、Spark读写操作、获取Column对象的方式

    take,takeAsList是Action操作 limit⽅法获取指定DataFrame的前n⾏记录,得到⼀个新的DataFrame对象.和take与head不同的是,limit⽅法不是Action ...

  9. Unity3D获取游戏对象组件的三种方式

    Unity获取游戏对象组件的三种方式 用Find查询 1. GameObejct go = GameObject.Find("对象名").GetComponent<获取对象上 ...

最新文章

  1. 查看ORACLE 下所有信息
  2. 如何处理Angular应用的错误消息: No pipe found with name async
  3. CTP 客户端 技术相关 简介 一
  4. Android wifi驱动的移植 realtek 8188
  5. 8th,Jan Time Shedule_1st Day
  6. 图书管理系统(课程设计)
  7. 三星q90 回音壁最新固件1010.5升级教程
  8. JS实现PDF合并功能
  9. Unity通过压缩字体减小包体大小
  10. 产品优化策略,有效提升产品自身竞争力,我赌你一定没用过
  11. 笔记本无线WiFi生成代码
  12. php正则匹配中文和英文字母,PHP正则匹配中文字母数字正则的表达式
  13. SpringBoot缓存@Cacheable
  14. 一文读懂Apache Kylin
  15. 不藏了,我的一千行 MySQL 学习笔记(2万字长文)
  16. 记录下我磕磕碰碰的三个月找工作经历,完整PDF
  17. Linux(五)Linux远程连接管理工具xftp,xshell使用
  18. 医学文献资料档案全文收集攻略
  19. A系统给B系统转100块钱如何实现?
  20. web、app跳转微信支付解决方案

热门文章

  1. LCD显示深究day01 mmap知识补充
  2. [react] react的性能优化在哪个生命周期?它优化的原理是什么?
  3. [react] 在JSX中如何写注释?
  4. react学习(27)---antdesign设置默认值
  5. 前端学习(2211):网络请求模块的选择--axios的配置相关
  6. 前端学习(1683):前端系列实战课程之让蛇吃食物变长
  7. 前端学习(1296):第三方模块nodenrm
  8. 前端学习(661):逻辑运算符
  9. 前端学习(623):交换两个变量的值
  10. 前端学习(489):文本格式化