Java反射机制的简单应用
一直感觉java的反射机制非常强大,可是可用的地方不多。在android学习的时候。一直想实现挂断电话的功能,可是系统并没有提供开放的api接口,看了一下网上使用反射机制来实现该功能,确实非常强大,非常有用。
今天在相应的web开发中,client须要提交參数给server,自己已经写好了相应的bean文件。可是每一次都须要就其内部的key-value进行拼接,比較麻烦,突然想起了了反射机制,尝试了一下,确实很的好用。以下看一下代码:
| 
 
1 
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
 
public class Bean{ 
hl=en&q=allinurl%3Astring+java.sun.com&btnI=I%27m%20Feeling%20Lucky" style="">String name;hl=en&q=allinurl%3Astring+java.sun.com&btnI=I%27m%20Feeling%20Lucky" style="">String property;public hl=en&q=allinurl%3Astring+java.sun.com&btnI=I%27m%20Feeling%20Lucky" style="">String getName() {return name; } public void setName(String name) { this.name = name; } public String getProperty() { return property; } public void setProperty(String property) { this.property = property; } }  | 
上面是一个Bean类,有2个属性,在请求server时,我须要将其拼接为name=xxx&property=xxx,一个还好,非常多这种凭借就须要将其抽象出来了,以下使用反射机制对其拼接。
| 
 
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  | 
 
import java.io.UnsupportedEncodingException; 
import java.lang.reflect.Field; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; public class ParamsUtil { public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException { //设置属性 Bean bean = new Bean(); bean.setName("blog.androiddevelop.cn"); bean.setProperty("master"); //获取全部变量 Field[] fields = bean.getClass().getDeclaredFields(); StringBuffer sb = new StringBuffer(""); for (int i = 0; i < fields.length; i++) { sb.append(fields[i].getName()); sb.append("="); sb.append( hl=en&q=allinurl%3Aurlencoder+java.sun.com&btnI=I%27m%20Feeling%20Lucky" style="">URLEncoder .encode(String.valueOf(fields[i].get(bean)),"UTF-8")); if (i < fields.length - 1) sb.append("&"); } System.out.println(sb.toString()); } }  | 
这样下来就将參数进行了拼接。当然,这样也有一定的弊端,要处理的对象里面的变量不能是非常复杂的类型。
很多其它文章请前往小胖轩.
Java反射机制的简单应用的更多相关文章
- java反射机制的简单介绍
		
参考博客: https://blog.csdn.net/mlc1218559742/article/details/52754310 先给出反射机制中常用的几个方法: Class.forName (& ...
 - (转)java反射机制及简单工厂模式
		
第一步,定义一个接口类 package factory.face; /** * 接口,为了保证返回的对象可以统一用 Product接受 * @author Administrator */ publi ...
 - java反射机制的简单使用
		
java 反射机制 反射机制简介 参考地址 什么是反射机制 反射机制指程序在运行时能够获取自身的信息.在java中只要给定类的名字,就可以通过反射机制获得类的所有信息 反射机制的优缺点 首先了解一下动 ...
 - Java反射机制的简单学习
		
今天看了一下Java的反射机制,就此记录一下. 首先,我们要先了解一下什么是反射? 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力. JAV ...
 - 利用Java反射机制优化简单工厂设计模式
		
之前项目有个需求,审批流程的时候要根据配置发送信息:发送短信.发送邮件.当时看到这个就想到要用工厂模式,为什么要用工厂模式呢?用工厂模式进行大型项目的开发,可以很好的进行项目并行开发.就是一个程序员和 ...
 - Java -- 浅入Java反射机制
		
1,Java 反射是Java语言的一个很重要的特征,它使得Java具体了"动态性". Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类. 在运行时构造任意一 ...
 - java反射机制简单实例
		
目录 Java反射 简单实例 @(目录) Java反射 Java语言允许通过程序化的方式间接对Class进行操作.Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通 ...
 - Java反射机制剖析(三)-简单谈谈动态代理
		
通过Java反射机制剖析(一)和Java反射机制剖析(二)的学习,已经对反射有了一定的了解,这一篇通过动态代理的例子来进一步学习反射机制. 1. 代理模式 代理模式就是为其他对象提供一种代理来 ...
 - Java反射机制 —— 简单了解
		
一.概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...
 
随机推荐
- 洛谷P3531 [POI2012]LIT-Letters
			
题目描述 Little Johnny has a very long surname. Yet he is not the only such person in his milieu. As it ...
 - 使用maven的tomcat:run进行web项目热部署
			
近期又又一次看了一下maven的东西,事实上主要是由于去了解Jenkins,后期或许会补充jenkins的博文. 怎么在eclipse里面创建maven webproject,这边就不介绍了,參见:h ...
 - bug 7715339 登录失败触发 ‘row cache lock’ 等待
			
Bug 7715339 - Logon failures causes "row cache lock" waits - Allow disable of logon delay ...
 - 【Cocos2d-x 017】 多分辨率适配全然解析
			
转:http://blog.csdn.net/w18767104183/article/details/22668739 文件夹从Cocos2d-x 2.0.4開始,Cocos2d-x提出了自己的多分 ...
 - 批量删除Windows7中隧道适配器的方法
			
批量删除Windows7中隧道适配器的方法 1.在网卡属性的"网络"中,将"Internet协议版本(TCP/IPv6)"前面的勾去掉. 2.在CMD下分别执行 ...
 - theme- 自定义控件属性
			
今天想要在一个控件中增加自己的一条属性,具体步骤如下 1.在frameworks/base/core/res/res/values/attr中注册属性 因为我们希望增加的属性是在AutoComplet ...
 - dump var_dump print print_r的区别
			
dump var_dump print print_r的区别 一.总结 用dump()来打印就对了 1.echo和print:不能打印复合型和资源型数据: 2.var_dump()和print_r() ...
 - 1.19 Python基础知识 - 软件目录开发规范及不同模块之间的调用
			
一个软件项目的开发,除了需要很厉害的开发能力,同时在软件开发项目时,也需要对项目结构有良好的组织能力,将功能进行拆分,不同的功能放在不同的目录或文件中,方便日后的维护,升级等操作.比如核心代码的目录, ...
 - NVM安装nodejs的方法
			
安装nodejs方式有很多种. 第一种:官网下载 通过nodejs官网下载安装 ,但有个缺陷,不同版本的nodejs无法顺利的切换. 第二种: NVM安装 NVM可以帮助我们快速切换 node版本 ...
 - JS match方法的返回数据的探究
			
match方法是JS的字符串方法,详细说明可以看MDN的说明. 如果正则表达式匹配成功的话,match方法会返回一个数组,而数组里的数据有两种形式,对应着匹配方式:全局匹配与非全局匹配. 1. 全局匹 ...