黑马程序员——13_反射笔记

原创 2015年07月06日 23:06:16

获取并操作类中受保护对象

1: 创建目标类Field对象

Field f=目标类.getClass().getDeclaredField("受保护变量名");

2:设置Field标记

f.setAccessible(true);

此时即使目标类中的变量为private也能访问并修改(get和set)。



getFields()方法与getDeclaredFields()

均返回Filed类型数组,若想对指定Field操作,需要遍历该数组并在遍历过程中进行判断和操作。




调用静态方法

1:创建目标类Method对象

Method m=目标类.getClass().getDeclaredMethod("方法明",参数.class);

2:调用

m.invoke(null,参数);




参数为数组时,传入写法需注意:

当参数为某一个类型的数组时,在调用该方法时若写:

定义:  方法(类型[] args);

调用:   方法(new 类型[] args);   方法(数组名);

此时虚拟机会将此参数识别为jdk低版本中多参数写法,则会对数组进行遍历,导致程序挂。

解决方案:

方法(new (Object)类型[] args);   方法((Object)数组名);

将参数数组封装在一个Object元素中,这时虚拟机则会将整个参数传入方法,使程序正常运作。





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员_JAVA笔记13——String、StringBuffer

------- android培训、java培训、期待与您交流! ---------- 1、String, 定义:public  final class String         字符串是一个...

黑马程序员——Objective-C程序设计(第4版)学习笔记之13-基本的C语言特性——黑马 IOS 技术博客

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 这章,讲述了Objective-C相关联的C语言特性,大部分内容学过C语言的都...

黑马程序员—13—java基础:有关集合类的学习笔记和心得体会

------- android培训、java培训、期待与您交流! ---------- 1. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对 ...

黑马程序员——day13字符串String的使用

----------------------    android培训    java培训   期待与您交流!    ---------------------- ...

黑马程序员之java学习笔记13

1. 处理异常的两种方式:  1)try{   }catch(Exception e){   }finally{   }  2)自己不处理,抛出去。在方法头上使用throws Excepti...

黑马程序员_学习笔记13_asp.net之Session原理解析

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 在ASP.NET中,我们使用...

黑马程序员_Java基础_我的Day13学习笔记

01. StringBuffer类的概述 A:StringBuffer类概述 通过JDK提供的API,查看StringBuffer类的说明 线程安全的可变字符序列 B:StringBuffer和S...

黑马程序员_java学习笔记13

------- android培训、java培训、期待与您交流! ---------- Day14 String StringBuffer StringBuilder 封装类 一、String...

黑马程序员——13JavaIO输入输出1

------------android培训、java培训、期待与您交流!------------   1,System:类中的方法和属性都是静态的。out:标准输出,默认是控制台。in:标准输...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)