文档章节

java之反射构造方法

1527
 1527
发布于 2015/10/11 19:18
字数 410
阅读 31
收藏 0
Class--->代表一类什么样的事物

Person p1 = new Person();
Person p2 = new Person();

反射获取类信息的形式

1.
Class cls1 = Date.class;//获取字节码1
Class cls2 = Person.class;//获取字节码2

2.
p1.getClass();

3.
Class.forName("java.lang.String");
问Class.forName("");的作用?返回字节码,1)如果类加载器已经被加载了,直接从JVM中读取信息 2)如果还未被加载,那么先加载到JVM中

public class ReflectTest {

	public static void main(String[] args) throws ClassNotFoundException {
		
		String str1 = "abc";
		Class cls1 = str1.getClass();
		Class cls2 = String.class;
		
		Class cls3 = Class.forName("java.lang.String");
		
		System.out.println(cls1==cls2);// true 说明加载的是同一份字节码
		System.out.println(cls1==cls3);// true
		
		System.out.println(cls1.isPrimitive()); //false 是否是一个基本的字节类型
		System.out.println(int.class.isPrimitive());// true 是一个基本的字节类型
		
		System.out.println(int.class == Integer.class); //false 
		System.out.println(int.class == Integer.TYPE);//true Integer.TYPE代表了Integer基本类型的字节码
		
		System.out.println(int[].class.isPrimitive());//false
		System.out.println(int[].class.isArray());//true 判断这个基本类型是不是数组
		
	}
} 

9个预定义Class实例对象
    参看Class.isPrimitive方法的帮助
    Integer.TYPE代表了Integer基本类型的字节码

数组类型的Class实例对象
    Class.isArray()
    
    只要在源程序中出现的类型,都有各自的Class实例对象,例如:int[] void ...
    
 Constructor类代表某个类中的一个构造方法
     得到某个类所有的构造方法
     Constructor[] constructors = Class.forName("java.lang.String").getConstructors();
     得到某一个构造方法
     Constructor constructor=Class.forName("java.lang.String").getConstructor(StringBuffer.class); 
     创建实例对象
     通常方式:String str = new String(new StringBuffer("abc"));
     反射方式:String str = constructor.newInstance(new StringBuffer("abc"));
     Class.newInstance()方法:
         例子:String obj = Class.forName("java.lang.String").newInstance();该方法内部先得到默认的构造方法,然后用构造方法创建实例对象


© 著作权归作者所有

共有 人打赏支持
1527
粉丝 7
博文 104
码字总数 42945
作品 0
成都
程序员
私信 提问
黑马程序员--JDK1.5新特性(二)

----------------------android培训、java培训、期待与您交流!---------------------- Java反射机制定义: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性、方法...

长平狐
2013/07/01
53
0
Java基础之反射(非常重要)

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道...

Java-老刘
05/15
0
0
Java中的反射|SquirrelNote

前言 本篇简介: 反射概述 反射具体功能实现 Android中的反射应用 一、反射(Reflection)概述 1.定义 是指在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;并且对于任何一个...

跳动的松鼠
2017/11/28
0
0
JAVA反射机制 访问对象私有变量和方法

jAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为jav...

梁某某
2013/10/16
0
1
Java反射机制

问题: 在运行时,对一个JAVA类,能否知道属性和方法;能否调用它的任意方法? 答案是可以的,JAVA提供一种反射机制可以实现。 目录 什么是JAVA的反射机制 JDK中提供的Reflection API JAVA反...

长平狐
2012/08/29
552
0

没有更多内容

加载失败,请刷新页面

加载更多

老男孩 - python函数编程day2

mark

以谁为师
21分钟前
1
0
【58沈剑 架构师之路】缓存,究竟是淘汰,还是修改?

允许cache miss的场景,不管是memcache还是redis,当被缓存的内容变化时,是修改缓存,还是淘汰缓存?这是今天将要讨论的话题。 问:KV缓存都缓存了一些什么数据? 答: (1)朴素类型的数据...

张锦飞
23分钟前
1
0
Spring异常之Druid – unregister mbean error set JAVA_OPTS="-Ddruid.registerToSysProperty=true"

Spring异常之Druid – unregister mbean error 2017年04月19日 12:13:42 Dr.Zhu 阅读数:6688 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zt_fucker/arti...

linjin200
24分钟前
1
0
数据结构-图-知识点总结

一、基本术语 图(graph):图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中的顶点的集合,E是图G中边的集合。 顶点(Vertex):图中的数据...

hblt-j
26分钟前
1
0
SAP订单编排和流程增强概述

SAP产品里的订单处理,无论是On-Premises解决方案还是云产品,我认为归根到底可以概括成四个字:订单编排,包含两个层次的内容: 1. 单个订单通过业务流程或者工作流驱动的状态迁移; 2. 多种...

JerryWang_SAP
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部