博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java高新技术-反射_Java高新技术2(反射)
阅读量:5149 次
发布时间:2019-06-13

本文共 1579 字,大约阅读时间需要 5 分钟。

packagecom.itheima.day1;/*反射就是把 Java类中的各种成分 映射成 相应的Java类.

Java类中有什么?(类所属的包,类中的字段,类中的方法)

Package getPackage()

获取此类的包。

Method getMethod(String name, Class>... parameterTypes)

返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。

Field getField(String name)

返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。

每个返回值都是一个对象,都映射成相应的类(相当于对java中所有类中的成分向上抽取描述),对上面那句话的理解学习反射的目的:

一个类中的 每个成员都可以用相应的反射API类的一个实例对象来表示,通过调用Class类的方法可以得到这些

实例对象后,如何用?怎么用?这才是学习和应用反射的关键*/

import java.lang.reflect.*;public classReflectConstructor {/***@paramargs*/

public static void main(String[] args)throwsException {//TODO 自动生成的方法存根

/*public Constructor getConstructor(Class>... parameterTypes)

throws NoSuchMethodException,

SecurityException

返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。

parameterTypes 参数是 Class 对象的一个数组,

这些 Class 对象按声明顺序标识构造方法的形参类型。*/

//new String(new StringBuffer("abc"));

Constructor strCons=String.class.getConstructor(StringBuffer.class);//对应String类中形参类型为StringBuffer的构造器对象

Constructor strBufCon=StringBuffer.class.getConstructor(String.class);//对应StringBuffered类中形参类型为String的构造器对象

/*public T newInstance(Object... initargs)//如果传入基本类型->自动装箱

throws InstantiationException,

IllegalAccessException,

IllegalArgumentException,

InvocationTargetException

使用此 Constructor 对象表示的构造方法来 创建该构造方法的声明类 的新实例,

并用指定的初始化参数初始化该实例。个别参数会自动解包,以匹配基本形参,

必要时,基本参数和引用参数都要进行方法调用转换。*/String str=(String)strCons.newInstance(strBufCon.newInstance("abc"));//这里没有使用泛型,编译时期不能确定返回类型,返回Object//如果传入类型非StirngBuffer类型->IllegalArgumentException

System.out.println(str+" "+str.length());

System.out.println(String.class.newInstance());//

转载地址:http://codnv.baihongyu.com/

你可能感兴趣的文章
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
Codeforces Round #277 (Div. 2)
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
淡定,啊。数据唯一性
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
Python字符编码
查看>>
leetcode 49. 字母异位词分组(Group Anagrams)
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器...
查看>>
例6-5
查看>>
eclipse变量名自动补全
查看>>
一个数据库操作类(包含弹出对话框函数,也可自定义弹出的脚本内容)
查看>>