下面展示一些 内联代码片
。
* 利用反射的知识完成下面的操作
* 1)创建Mytxt类,创建myCreate()方法完成创建文件D:\myhello.txt文件的功能。
* 创建带main方法的NewInstanceTest类,通过Class类获取Mytxt对象,调用myCreat()
public class Mytxt {
private void myCreate(String s){
FileWriter writer = null;
try {
writer = new FileWriter(new File("D:\\myhello.txt"),true);
writer.write(s);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(writer != null)
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class NewInstanceTest1{
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
//获取Class的实例
Class clazz = Class.forName("com.atguigu.exer.Mytxt");
//创建运行时类的对象
Mytxt mytxt = (Mytxt) clazz.newInstance();
/*
1.获取指定的某个方法
getDeclaredMethod():参数1 :指明获取的方法的名称 参数2:指明获取的方法的形参列表
*/
Method myCreate = clazz.getDeclaredMethod("myCreate", String.class);
//2.保证当前方法是可访问的
myCreate.setAccessible(true);
/*
3. 调用方法的invoke():参数1:方法的调用者 参数2:给方法形参赋值的实参
invoke()的返回值即为对应类中调用的方法的返回值。
*/
Object invoke = myCreate.invoke(mytxt, "6666");
System.out.println(invoke);
}
}