一直感觉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{
    String name;
    String property;
    public 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(URLEncoder.encode(String.valueOf(fields[i].get(bean)),
                    "UTF-8"));
            if (i < fields.length - 1)
                sb.append("&");
        }
        System.out.println(sb.toString());
    }
}

这样下来就将參数进行了拼接。当然,这样也有一定的弊端,要处理的对象里面的变量不能是非常复杂的类型。

很多其它文章请前往小胖轩.

Java反射机制的简单应用相关推荐

  1. java反射机制的简单使用和优缺点

    java反射机制的使用 一.反射是什么? JAVA反射机制是在运行状态中,对于任意一个类,都能够获取这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取类信息以及动 ...

  2. Java反射机制(简单易懂)

    文章目录 前言 一.反射机制 二.反射的用途 三.反射相关的类(重要) 3.1 Class类(反射机制的起源 ) 3.2 通过反射调用构造方法 3.3 通过反射调用普通方法 3.4 通过反射调用类属性 ...

  3. Java反射机制的基本概念与使用_Java进阶之reflection(反射机制)——反射概念与基础...

    反射机制是Java动态性之一,而说到动态性首先得了解动态语言.那么何为动态语言? 一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见 ...

  4. 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换

    作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上 ...

  5. java基础-java反射机制

    2019独角兽企业重金招聘Python工程师标准>>> 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩" ...

  6. 利用java反射机制进行对象操作

    我们经常使用COMMONS-BEANUTILS包来进行bean的操作,例如从map到bean获从bean到map的映射,那么实现的原理是什么呢,下面举个简单的操作的例子:首先,我建立一个bean pu ...

  7. Java反射机制及API使用

    原文地址 反射简单来说,就是动态加载对象,并对对象进行剖析.在Java中的反射机制是指在运行状态中,对于任意一个类,都能够知道并获取这个类的所有属性和方法. Java反射机制的作用: 在运行时判断任意 ...

  8. Java反射机制深入详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.概念 反射就是把Java的各种成分映射成相应的Java类. Class类的构造方法是private,由JVM创建. 反射是 ...

  9. Java反射机制demo(四)—获取一个类的父类和实现的接口

    2019独角兽企业重金招聘Python工程师标准>>> Java反射机制demo(四)-获取一个类的父类和实现的接口 1,Java反射机制得到一个类的父类 使用Class类中的get ...

  10. java反射机制--reflection

    反射,reflection,听其名就像照镜子一样,可以看见自己也可以看见别人的每一部分.在java语言中这是一个很重要的特性.下面是来自sun公司官网关于反射的介绍:    Reflection is ...

最新文章

  1. 人脸识别损失函数笔记
  2. spring中Converter如何注入的
  3. latex文档的优点和使用小tips
  4. 不可不知的C#基础 1. -- Extension 扩展方法
  5. OpenGL Lightmap光照贴图的实例
  6. 水晶报表基础入门——1.水晶报表技术
  7. python中arr是什么意思_python中关于arr[...,1]和arr[:,:,1]的联系与区别
  8. python主成分分析法实训报告_基于 python 的主成分分析步骤及应用实例
  9. 1059 Prime Factors (25 分)水
  10. java命名规则_java命名规范
  11. [亲测可用] Mac PS CC2019软件下载详细安装教程
  12. 论文分析---APP流量分类
  13. Java @Data注解
  14. node.js请求接口
  15. IDEA代码规约插件灵狐安装
  16. 【Linux】~ 如何将本地文件(windows)复制(传输)到虚拟机中
  17. 美国国防部可信计算机系统评估系TCSEC
  18. Qt编写地图综合应用59-经纬度坐标纠偏
  19. 麒麟系统启用SELinux
  20. pi双闭环调节c语言程序,基于双闭环PI和准PR控制的单相光伏逆变器的设计

热门文章

  1. paip.java OutOfMemoryError 解决方法o33
  2. paip.slap工具与于64位win7与JDBC的性能对比
  3. LBMALL V3.1.1 多用户商城系统功能说明
  4. paip.操作DATATABLE增加列及内容
  5. 零部件表设计 T_AIS_BASE_PARTS_INFO
  6. 王国斌最新演讲!给企业家7大建议:资本从来都不是免费的
  7. 余额宝宣布开放 中欧基金首批入驻
  8. 阿里云张建锋:数字技术要服务好实体经济
  9. 谷歌android q 安装,谷歌修复了Pixel智能机安装Android Q Beta 4后循环重启的bug
  10. c语言怎样用vc绘图,大佬们,小菜鸟想问一问用vc编译器做简易画图软件