java反射

Wesley13
• 阅读 648

package com.reflect;

import java.lang.reflect.InvocationTargetException;

/**
* 反射 学习
* 反射的功能就是 类、对象,可以通过 反射 获取 里面的 方法、属性的功能
* @author Administrator
*
*/
public class YuQingChongFuTest {

public static void main(String[] args) throws Exception {
//方法名称
String setname = "test";
//值
String strdata = "这是值";
YuQingChongFuTest yuQingChongFuTest = new YuQingChongFuTest();
//动态修改
//String.class 是test的参数类型
//调用下面的test方法
yuQingChongFuTest.getClass().getMethod(setname, String.class,Integer.class).invoke(yuQingChongFuTest, strdata,123);
//                                 获取类      获取方法   调用方法名      方法参数类型                    启用方法          具体类名             具体参数
}

public void test(String str,Integer str2){
System.out.println("test()method..."+str+str2);
}

/**
* 根据名称将值set到对应的主体
* @param entity 实体类 (类似普通的bean)_
* @param name 字段名称
* @param strdata 财务值
* @return
*/
public static Boolean setValueToName(Object entity,String name,String strdata) {
if (name!=null) {
String setname = "set" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length()).toLowerCase();//获得set名称
String getname = "get" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length()).toLowerCase();//获得get名称
try {
String Methodtype=entity.getClass().getMethod(getname).getReturnType().getName();//获得类型
if(Methodtype!=null){
if("java.lang.String".equals(Methodtype)){//字符类型
entity.getClass().getMethod(setname, String.class).invoke(entity, strdata);//动态修改
return true;
}else if("java.lang.Byte".equals(Methodtype)){
entity.getClass().getMethod(setname, Byte.class).invoke(entity, Byte.parseByte(strdata));//动态修改
return true;
}else if("java.lang.short".equals(Methodtype)){
entity.getClass().getMethod(setname, Short.class).invoke(entity, Short.parseShort(strdata));//动态修改
return true;
}else if("java.lang.Double".equals(Methodtype)){
entity.getClass().getMethod(setname, Double.class).invoke(entity, Double.parseDouble(strdata));//动态修改
return true;
}else if("java.lang.Float".equals(Methodtype)){
entity.getClass().getMethod(setname, Float.class).invoke(entity, Float.parseFloat(strdata));//动态修改
return true;
}else if("java.lang.Boolean".equals(Methodtype)){
entity.getClass().getMethod(setname, Boolean.class).invoke(entity, Boolean.parseBoolean(strdata));//动态修改
return true;
}else if("java.lang.Integer".equals(Methodtype)){
entity.getClass().getMethod(setname, Integer.class).invoke(entity, Integer.parseInt(strdata));//动态修改
return true;
}
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}

}
return false;
}

}

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java反射大全
作者对反射的理解:方法的调用(正常的调用:对象.方法()。反射调用方法:方法.对象())静态属性的调用(正常的调用:类.属性。反射调用:属性.类)常见反射的用法:        1.通过反射获取类Class<?demo1Class
Wesley13 Wesley13
3年前
java面试(反射)05
1.什么是反射JAVA反射机制是在运行状态中,对于任意一个类,都能够获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取类信息以及动态调用对象内容就称为java语言的反射机制。2.反射的作用在运行时判断任意一个对象所属的
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
Java反射技术概述
1.什么是Java反射?  就是正在运行,动态获取这个类的所有信息2.反射机制的作用  a.反编译:.class.java  b.通过反射机制,访问Java对象的属性,方法,构造方法等3.反射机制的应用场景  Jdbc加载驱动  SpringIOC实现  Java框架4.创建对象的两种方式  a.直
Wesley13 Wesley13
3年前
Java重点基础:反射机制
一、什么是反射?Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。二、反射的三种方式
Wesley13 Wesley13
3年前
Java反射机制及适用场景
什么是Java反射机制?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。反射的适用场景是什么?1.当你做一个软件可以安装插件的功能,你连插件的类型名称都不知道,你怎么实例化这个对象呢