java 反射得到属性与属性值

<div id="cnblogs\_post\_body" class="blogpost-body "> <p>反射可以破坏所有的封装性,比如这次通过反射得到的属性与属性值;</p> <div class="cnblogs\_code"><div class="cnblogs\_code\_toolbar"><span class="cnblogs\_code\_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="https://my.oschina.net//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></span></div> <pre> <span style="color: #008000;">/\*</span><span style="color: #008000;">\* \* 得到属性值 \* @param obj </span><span style="color: #008000;">\*/</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> readAttributeValue(Object obj){ String nameVlues</span>=""<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">得到class</span> Class cls =<span style="color: #000000;"> obj.getClass(); </span><span style="color: #008000;">//</span><span style="color: #008000;">得到所有属性</span> Field\[\] fields =<span style="color: #000000;"> cls.getDeclaredFields(); </span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i=<span style="color: #800080;">0</span>;i&lt;fields.length;i++){<span style="color: #008000;">//</span><span style="color: #008000;">遍历</span> <span style="color: #0000ff;">try</span><span style="color: #000000;"> { </span><span style="color: #008000;">//</span><span style="color: #008000;">得到属性</span> Field field =<span style="color: #000000;"> fields\[i\]; </span><span style="color: #008000;">//</span><span style="color: #008000;">打开私有访问</span> field.setAccessible(<span style="color: #0000ff;">true</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;">获取属性</span> String name =<span style="color: #000000;"> field.getName(); </span><span style="color: #008000;">//</span><span style="color: #008000;">获取属性值</span> Object value = field.<span style="color: #0000ff;">get</span><span style="color: #000000;">(obj); </span><span style="color: #008000;">//</span><span style="color: #008000;">一个个赋值</span> nameVlues += field.getName()+<span style="color: #800000;">"</span><span style="color: #800000;">:</span><span style="color: #800000;">"</span>+value+<span style="color: #800000;">"</span><span style="color: #800000;">,</span><span style="color: #800000;">"</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IllegalAccessException e) { e.printStackTrace(); } }<br>      <span style="color: #008000;"> //获取最后一个逗号的位置</span><br>       int lastIndex = nameVlues.lastIndexOf(",");<br>     </span><span style="color: #008000;">//</span><span style="color: #008000;">不要最后一个逗号","</span> String result= nameVlues.substring(<span style="color: #800080;">0</span>,lastIndex<span style="color: #000000;">); System.</span><span style="color: #0000ff;">out</span><span style="color: #000000;">.println(result); }</span></pre> <div class="cnblogs\_code\_toolbar"><span class="cnblogs\_code\_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="https://my.oschina.net//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></span></div></div> <p>&nbsp;</p> <p>我们再来看看输出的结果吧:</p> <p><img src="https://img2018.cnblogs.com/blog/1112483/201909/1112483-20190919175035808-1536189599.png" alt=""></p> <p>&nbsp;</p> <p>数据是提前通过set的方法赋值的</p> <p>&nbsp;</p> 原文地址:https://www.cnblogs.com/javaLin/p/8341388.html </div>
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Neo4j 第一篇:在Windows环境中安装Neo4j

<divid"cnblogs\_post\_body"class"blogpostbody"<p图形数据库(GraphDatabase)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和

Springboot+shiro配置笔记+错误小结(转)

<divclass"postBody"<divid"cnblogs\_post\_body"class"blogpostbody"<p  <spanstyle"color:ff0000"软件152尹以操</span</p<p  springboot不像springmvc,它没有xml配置文件,那该如何配置shiro呢

JSONArray数据转换成java List

<divid"cnblogs\_post\_body"class"blogpostbody"<p<spanstyle"fontsize:18pt"1.后台接收json数组转成封装实体类的List:</span</p<divclass"cnblogs\_code"<divclass"cnblogs\_code\_tool

JAVA实现AES 解密报错Input length must be multiple of 16 when decrypting with padded cipher

<divid"cnblogs\_post\_body"class"blogpostbody"<h3加密代码</h3<p </p<divclass"cnblogs\_Highlightershgutter"<div<divid"highlighter\_969460"class"syntaxhighlighter

Elasticsearch基本概念及核心配置文件详解

<divid"cnblogs\_post\_body"class"blogpostbody"<p&nbsp;  Elasticsearch5.X,下列的是Elasticsearch2.X系类配置,其实很多配置都是相互兼容的</p<h2id"1配置文件"1.配置文件</h2<prename"code"<codeclass