当前位置:我的异常网» 编程 » java反射挟制赋值

java反射挟制赋值

www.myexceptions.net  网友分享于:2014-07-17  浏览:0次

java反射强制赋值

package com.my.reflect;

import java.lang.reflect.Field;

/**

* 反射赋值

* @author mengyao

*

*/

public class ReflectSet {

/**

* 用于对类的字段赋值,无视private,project修饰符,无视set/get方法

* @param c 要反射的类

* @param args 类的字段名和值 每个字段名和值用英文逗号隔开

* @return

*/

public static Object getInstance(Class> caz, String... args) {

try {

//装载指定类后创建类对象

Object object = Class.forName(caz.getName()).newInstance();

//通过实例对象取得用取得在内存中该实际类型class对象的引用

Class> obj = object.getClass();

Field[] fields = obj.getDeclaredFields();

for (int i = 0; i < fields.length; i++) {

fields[i].setAccessible(true);

for (int j = 0; j < args.length; j++) {

String str = args[j];

String strs[] = str.split(",");

if (strs[0].equals(fields[i].getName())) {

fields[i].set(object, strs[1]);

break;

}

}

}

return object;

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (InstantiationException e) {

e.printStackTrace();

}

return null;

}

public static void main(String[] args) {

Object object=getInstance(SendInfo.class,"destID,01201101","mobile,15810022404","content,测试数据。");

SendInfo sms=(SendInfo)object;

System.out.println("短信内容:"+sms.getContent());

System.out.println("手机号码:"+sms.getMobile());

System.out.println("尾号:"+sms.getDestID());

//String.class==new String().getClass()结果为true,

//String.class是通过类名的引用取得在内存中该类型class对象的引用;new String().getClass()是通过实例对象取得用取得在内存中该实际类型class对象的引用

System.out.println(String.class==new String().getClass());

}

}

class SendInfo {

private String destID;

private String mobile;

private String content;

public SendInfo() {

}

public SendInfo(String destID, String mobile, String content) {

this.destID = destID;

this.mobile = mobile;

this.content = content;

}

public String getDestID() {

return destID;

}

public void setDestID(String destID) {

this.destID = destID;

}

public String getMobile() {

return mobile;

}

public void setMobile(String mobile) {

this.mobile = mobile;

}

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

}

}

文章评论

Java反射方法赋值,java反射挟制赋值相关推荐

  1. java反射方法调用_Java反射(3)调用方法

    目录: 1.访问方法(Method)对象的方法汇总 2.获取方法(Method)对象中的值 3.设置方法(Method)对象中的值 1.访问Method的方法汇总 以下四种方法在Class类可以返回关 ...

  2. 反射java调用方法_java 使用反射调用方法

    每个Method的对象对应一个具体的底层方法.获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法. Object invoke(Object obj,Object ...

  3. java virtual 方法_JVM(Java Virtual Machine)

    Java语言的一个非常重要的特点就是与平台的无关性.而使用Java虚拟机是实现这一特点的关键.一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码.而引入Java语言虚拟机后,Java ...

  4. java反射性能问题_Java反射应用实例java反射的性能问题 | 学步园

    很多IOC等框架都使用反射来实现,例如Spring, Hibernate等, Java反射的方式实现的逻辑比普通类逻辑的效率是要差一些的(14至300倍左右), 具体可以参考我转载的一篇文章< ...

  5. JAVA toString方法详解

    JAVA toString方法 在Java中,我们经常会编写许多自定义类.在使用时,我们如何打印出这些类中实例变量? class value {private int s;public void se ...

  6. NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM(方法签名,CallXXXMethod)

    NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM 题目有点复杂,不过确实就是那么回事.这章想记录的内容比较多,先列出来: native static 与 nat ...

  7. 万字长文分享,新手小白如何自学Java(方法+步骤)

    我准备从思想方法和具体的学习步骤上给大家聊一下我的做法,希望对大家有所帮助! 看完本篇文章你会得到如下收获: 学习Java的方法 学习Java的具体步骤 大学四年如何高质量度过 如何把我大学时光自学编 ...

  8. 万字长文分享,如何自学Java(方法+步骤)

    ​ 目录 收起 大家存在的问题 为什么我觉得方法很重要? 五个步骤学习Java 第一阶段:揽全局 「怎么办?你需要的是系统化学习!」 教程式笔记 我的大学 我准备从思想方法和具体的学习步骤上给大家聊一 ...

  9. java反射对象赋值_Java反射详解

    反射(Reflection)能够让运行于 JVM 中的程序检测和修改运行时的行为. Class类提供了以下方法 四个public方法,用于获取某个类的构造方法: Constructor getCons ...

最新文章

  1. cass坡度土方计算案例_南方CASS方格网土方计算心得
  2. SAP MM 公司间STO的BILLING输出报错 - Inbound partner profile does not exist –
  3. 特使招募-航天三院-智能车竞赛
  4. oracle 11g ocp 笔记(15)--使用rman进行备份
  5. 每日一题(14)—— 交换a,b的值(不使用中间变量)
  6. 【Elasticsearch】Elasticsearch 动态模板(Dynamic templates)
  7. 如何用 Python 快速抓取 Google 搜索?
  8. linux虚拟内存和win,linux下的vm(虚拟内存)和windows下的作用是一样的,均是防止真实内存资源不足准备的. linux的vm相关参数...
  9. wap精武堂源码php_仿qq家园游戏源码wap文字游戏源码wap游戏源码
  10. JAVA王思聪吃热狗程序_王思聪吃热狗小游戏, 程序员开发路上
  11. Unity-UI控件在不同设备等比例缩放显示
  12. 加州大学洛杉矶分校计算机硕士学费,美国加州大学洛杉矶分校计算机科学硕士.pdf...
  13. axture工具栏使用
  14. Javascript前端模块化
  15. 青春不散场,CSDN毕业季有奖征文开启啦~~
  16. 企业购买团体商业保险有助提升公司形象
  17. 万字长文简单明了的介绍xxl-job以及quartz
  18. Spring Boot自动装配过程解析及简单Demo演示
  19. 惠普暗夜精灵2怎么打开后盖_惠普光影精灵3后盖拆解图 | 手游网游页游攻略大全...
  20. ERP与MES管理系统一体化,解决家具企业生产痛点

热门文章

  1. python day 14
  2. 江开计算机考试,江苏开放大学计算机应用基础形考第二次作业答案
  3. linux 批量telnet 脚本,shell脚本-批量telnet
  4. Nutanix推出超融合软件创新功能,强化市场领导地位
  5. QT实现网络编程---客户端、服务端
  6. 如何使用计算机搜索功能,如何使用Win7搜索功能快速找到文件?
  7. JAVA:Jar包下载
  8. magicbox linux教程,天猫魔盒安装原生linux的一些初步成果
  9. 二叉树遍历完整版整理(含层次与递归非递归实现)
  10. 纯批处理代码一键唤醒或关闭任意电脑的批处理(自动识别开机状态并自动切换对目标电脑开机或关机模式)