我是靠谱客的博主 细心大船,这篇文章主要介绍【Java笔记(7)】反射实例化对象clazz.getDeclaredConstructor().newInstance()跟class.newInstance()一、Class类的实例化方式二、反射实例化对象三、关键字总结,现在分享给大家,希望可以做个参考。
目录
- 一、Class类的实例化方式
- 二、反射实例化对象
- 三、关键字总结
一、Class类的实例化方式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27package reflect; import java.util.Date; /** * Class类对象的三种形式,三种形式都很重要 * * @ClassName: ClassObjectThreeDome * @Author: Xlu103 * @Date: 2020-06-07 19:14 **/ public class ClassObjectThreeDome { //注意会抛出 ClassNotFoundException异常,类找不到。是在Class.forName()中抛出的。 public static void main(String[] args) throws ClassNotFoundException { //使用 Object中的getClass() 方法获得 Date date = new Date(); Class dateClass_1=date.getClass(); System.out.println(dateClass_1); //使用 类名.class 来获取 //这个是JVM支持的,但是得先把包导进来 Class dateClass_2=Date.class; System.out.println(dateClass_2); //利用Class中的forName()方法获取类 Class dateCLass_3 = Class.forName("java.util.Date"); System.out.println(dateCLass_3); } }
二、反射实例化对象
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30package reflect; import java.lang.reflect.InvocationTargetException; /** * 1.9之前使用 newInstance()实例化对象 * 1.9之后使用 * @ClassName: NewInstanceDome * @Author: Xlu103 * @Date: 2020-06-07 19:35 **/ public class NewInstanceDome { public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { Class instanceObj =PersonInstance.class; //1.9之后不能用了,因为只能调用无参构造,没办法构 Object objPerson1 =instanceObj.newInstance(); //1.9之后采用这个来实例化对象 Object objPerson2 = instanceObj.getDeclaredConstructor().newInstance(); System.out.println(objPerson1); System.out.println(objPerson2); } } class PersonInstance { public PersonInstance() { System.out.println("我被构造了"); } @Override public String toString() { return "我来了"; } }
三、关键字总结
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15//使用 Object中的getClass() 方法获得 Class dateClass_1=date.getClass(); //使用 类名.class 来获取 //这个是JVM支持的,但是得先把包导进来 Class dateClass_2=Date.class; //利用Class中的forName()方法获取类 Class dateCLass_3 = Class.forName("java.util.Date"); //1.9之后不能用了,因为只能调用无参构造,没办法构 Object objPerson1 =instanceObj.newInstance(); //1.9之后采用这个来实例化对象 //这里要注意不是getDeclaredConstructors Object objPerson2 = instanceObj.getDeclaredConstructor().newInstance();
最后
以上就是细心大船最近收集整理的关于【Java笔记(7)】反射实例化对象clazz.getDeclaredConstructor().newInstance()跟class.newInstance()一、Class类的实例化方式二、反射实例化对象三、关键字总结的全部内容,更多相关【Java笔记(7)】反射实例化对象clazz.getDeclaredConstructor().newInstance()跟class.newInstance()一、Class类内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复