JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
请在在Eclipse中创建一个项目DynamicClass
,并在该项目中创建com.shiyanlou.course
包。在该包中创建Test
类,并编写main()
方法。
在main()
方法中创建一个File对象(你只需要知道File对象也是一个对象即可,进一步了解File对象)。
最后,使用该对象在桌面创建一个文本文件。
主要的代码如下:
1 package com.shiyanlou.course; 2 3 import java.io.File; 4 import java.lang.reflect.Constructor; 5 //需要引用上述两个包 6 7 public class Test { 8 9 public static void main(String[] args) { 10 try { 11 12 Constructor<File> constructor = File.class.getDeclaredConstructor(String.class); 13 //获得File类的Constructor对象 14 15 System.out.println("Create File Object with reflection."); 16 //使用反射创建File对象 17 File file = constructor.newInstance("/home/shiyanlou/Desktop/MyFile.txt"); 18 System.out.println("Use File Object to create MyFile.txt on desktop."); 19 //指定了创建的路径为桌面,名称为“MyFile.txt” 20 21 file.createNewFile(); //创建新的文件 22 System.out.println("File is created ?" + file.exists()); 23 //验证文件是否创建成功 24 25 } catch (Exception e) { 26 e.printStackTrace(); 27 } 28 } 29 }
你可能会问为什么会用到try
、catch
以及Exception
之类的奇怪的东西,这是由于上述代码会抛出大量的异常。我们通常不推荐这样写。不用担心,我们将在错误处理一章为你详细介绍他们的原理和用法。
点击编译并运行,如果在控制台可以看到下列信息则表示你成功了。