获取Class对象方式
在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
获取Class对象方式的更多相关文章
- 在SpringMVC中获取request对象的几种方式
1.最简单的方式(注解法) @Autowired private HttpServletRequest request; 2.最麻烦的方法 a. 在web.xml中配置一个监听 <listene ...
- java webservice服务器端获取request对象的三种方式
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...
- webservice服务器端获取request对象的三种方式
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...
- 反射:获取Class对象的三种方式
获取Class对象的三种方式 package lianxiApril18; /** * 获取Class对象的三种方式 * 1 Object ——> getClass(); * 2 任何数据类型( ...
- spring mvc中几种获取request对象的方式
在使用spring进行web开发的时候,优势会用到request对象,用来获取访问ip.请求头信息等 这里收集几种获取request对象的方式 方法一:在controller里面的加参数 public ...
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- 3、获取Class对象的三种方式
3.获取Class对象的三种方式 要想对字节码文件进行解刨,必须要有字节码文件对象 Object类中的getClass方法 通过对象静态属性 .class来获取对应的Class对象 只要通过给定类的字 ...
- Java反射学习-2 - 获取Class对象的三种方式
package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...
- 反射应用和获取Class对象的三种方式
一.写一个"框架",可以创建任何对象运行任何方法 1.配置文件 2.使用类加载器ClassLoader,Properties集合是可以和IO流结合使用完成读取和写入数据的集合,方法 ...
随机推荐
- hdoj--5100--Chessboard(数学推理)
Chessboard Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- LA4122
哈夫曼树+搜索 抄了抄代码 先开始不知道怎么限制哈夫曼树,然后看了看代码,是用bfs序来限制.因为每个节点的右子树节点肯定不小于左儿子,同一层也是.所以先搞出bfs序,然后搜索,判断每一层右边是否大于 ...
- centos7 二次封装定制
- diaowen Maven Webapp
五月 , :: 上午 org.apache.catalina.startup.VersionLoggerListener log INFO: Server version: Apache Tomcat ...
- E20170911-hm
specification n. 规格; 说明书; 详述;
- java多线程编程之synchronized
synchronized是用来解决多线程情况下的线程安全问题的,它可以修饰方法也可以修饰语句块 , 那么什么情况下是线程安全和线程不安全呢 ? 方法内的变量是线程安全的 , 类的实例变量是非线程安全的 ...
- POJ 1010 题目翻译+题解
题目实在是太难懂了,我翻译了一下... STAMPS Description Have you done any Philately lately? 你最近有没有集邮? You have been h ...
- Spring Boot (20) 拦截器
动态资源和静态资源 拦截器可以算是aop的一种实现,专门拦截对动态资源的后台请求,也就是拦截对控制层的请求,主要用于判断用户是否有权限请求后台.拦截器不会拦截静态资源,如spring boot默认静态 ...
- php实时推送系统消息给客户端
在我们实际开发过程中,有些数据需要实时获取:比如erp系统中的订单信息,OA系统中的流程审批等都需要及时处理,这时我们就不能再使用http协议了:当然也可以使用轮询的机制.但是轮询请求中有大半是无用, ...
- Django学习案例一(blog):二. 连接数据库
本例使用了django默认的sqlite3数据库,配置文件不需要作调整: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite ...