`
isiqi
  • 浏览: 16841159 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

利用一下java的反射根据字符串找类,方法,然后执行方法

阅读更多

这个是用在一个类似struts结构的框架上,小日这边的cozy

当从页面接收到控件的值设置到对应的state里边,省去了些好多state.setXXX(request.getParameter());

public void setXXXXX(Request request, StateBean state, String stateName)
throws Exception {
Enumeration e = request.getParameterNames();
Method[] meths = Class.forName(stateName).getMethods();
if (meths == null || meths.length == 0) {
return;
}
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String setMethod = "set" + name.substring(0, 1).toUpperCase() + name.substring(1);

Method meth = null;
Object[] argv = new Object[1];
for (int i = 0; i < meths.length; i++) {
if (meths[i].getName().equals(setMethod)) {
meth = meths[i];
break;
}
}
if (meth == null) {
continue;
}
Class[] paramType = meth.getParameterTypes();
if (paramType.length != 1) {
continue;
}

if (paramType[0].isArray() && paramType[0].getName().indexOf("java.lang.String") >= 0) {
argv[0] = request.getParameters(name);
} else if (paramType[0].newInstance() instanceof String) {
argv[0] = request.getParameter(name);
} else if (paramType[0].newInstance() instanceof StringList) {
argv[0] = CmnUtil.splitStringToList(request.getParameter(name), ",");
} else {
continue;
}

meth.invoke(state, argv);
}
}

分享到:
评论

相关推荐

    利用java反射调用实现对字符串的解析,成功调入函数,并且返回值

    在这个场景中,我们关注的是如何利用Java反射调用来解析字符串并执行相关函数,最终获取返回值。下面将详细阐述这个过程。 首先,`ReflectUtils.java` 文件可能包含了一些静态方法,这些方法提供了反射操作的便利...

    动态编译字符串成java,并且添加class到jvm

    这一技术的核心在于利用Java的反射API和Java Compiler API。下面将详细阐述这个过程。 首先,我们需要了解Java Compiler API,这是Java 6引入的一个新特性,允许我们在运行时编译Java源代码。`javax.tools....

    java反射机制工具类

    3. 动态创建对象:利用`Class.forName()`方法,可以基于字符串形式的类名创建对象,无需在编译时知道具体类的实现。 4. 处理数组:反射提供API来创建和操作数组,包括获取数组长度、遍历数组元素等。 5. 执行注解...

    利用反射实现对象转json格式字符串

    总结来说,利用反射实现对象转JSON格式字符串涉及以下步骤: 1. 获取对象的类和所有声明的字段。 2. 使用反射访问字段并获取其值。 3. 将字段值添加到JSON映射中。 4. 如果对象有父类,递归处理父类的字段。 5. 将...

    java 反射机制详解

    首先,`Class.forName()` 用于根据字符串 `beanName` 加载对应的类,这里可能是 `Son1` 或 `Son2`。然后,`newInstance()` 方法用来创建该类的新实例。接着,通过 `getMethod()` 获取指定的设置字段的方法(在这里是...

    java反射简单例子demo

    3. 字符串拼接优化:StringBuilder的`append`方法利用反射优化字符串连接性能。 4. 测试工具:如JUnit,反射调用私有方法进行测试。 5. 反序列化:将对象从序列化的形式还原为原对象。 总之,Java反射是Java语言...

    Java反射机制源码

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部结构。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改私有成员,这为实现元编程和框架设计...

    利用java反射、注解及泛型模拟ORM实现

    这篇博文“利用java反射、注解及泛型模拟ORM实现”旨在探讨如何结合这三种技术来实现对象关系映射(ORM),这是一种将数据库表与Java对象之间进行绑定的技术,简化了数据操作。 首先,我们来理解一下这三个概念: ...

    java反射机制,很安逸.不要错过

    - 动态加载类:在不确定具体类名的情况下,可以根据字符串加载并实例化类。 - 框架设计:Spring框架中的依赖注入,AOP(面向切面编程)等都是基于反射实现的。 - 测试工具:JUnit等测试框架利用反射可以方便地调用...

    java反射机制知识点【精通JAVA必知必会】

    每个类在加载后都会有一个对应的Class对象,可以通过类名的字符串形式使用`Class.forName()`方法获取。 - `Class`对象提供了多种方法来获取类的详细信息,如`getModifiers()`获取访问修饰符,`getConstructors()`...

    Java反射泛型,实现数据库的动态增删改查等功能

    在数据库操作中,反射可以帮助我们根据字符串形式的SQL语句来动态执行相应的方法,无需预先编写大量硬编码的数据库访问代码。 例如,我们可以创建一个`DatabaseExecutor`类,它接受SQL语句作为输入,并通过反射调用...

    Java反射机制说明

    1. **动态实例化对象**:在`Util`类的`convertStr2ServiceBean`方法中,通过`Class.forName`方法根据传入的字符串`beanName`动态加载指定类,并使用`newInstance`方法创建该类的实例。这样,我们不需要知道具体的...

    Android-android执行字符串代码--实现接口可配置跳转任何Activity

    在Android应用开发中,有时我们需要根据特定的业务需求动态地执行字符串表示的代码,例如,通过接口配置来跳转到不同的Activity。这个场景通常出现在插件化开发、动态加载或运行时权限处理等复杂场景中。本文将详细...

    Java 反射机制浅析

    在上述示例代码中,`main()`方法接收一个字符串参数,通过`Class.forName()`动态加载指定的类,并获取该类的所有公共方法,然后逐一打印出来。这就是反射机制的一个基本应用,展示了如何动态地获取和显示类的方法...

    java 反射得到某个方法

    在标题“java 反射得到某个方法”中,我们将探讨如何使用Java反射API来获取并执行类中的特定方法。 首先,我们需要导入Java反射相关的类,主要来自`java.lang.reflect`包,包括`Class`、`Method`和`Invocation...

    java反射实现javabean转json实例代码.docx

    本文将详细介绍如何利用Java反射机制来实现JavaBean对象到JSON字符串的转换,并提供具体的示例代码。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时访问类的信息,包括字段、构造函数以及方法等。通过...

    java反射机制原理

    Java反射机制是Java编程语言中的一个核心特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这一机制使得Java具备了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用方法和访问...

    Java反射示例代码.rar

    - Class对象:通过Class对象,我们可以获取到类的信息并执行类的方法或访问其属性。 - 获取Class对象:三种方式,一是使用`Class.forName()`方法,二是通过类的`.class`属性,三是通过对象的`getClass()`方法。 2...

    Java反射概念及例子

    这种能力对于需要在运行时根据字符串形式的信息来调用对象属性和方法的框架编程尤其有用。框架技术在当前的软件开发中占据着举足轻重的地位,其灵活性和可扩展性很大程度上得益于反射技术的应用。 当框架无法预知...

    通过Java annotation以及反射机制实现不同类型通用的数据库访问接口

    在上述代码中,`DatabaseAccess`类通过反射获取`User`类上的`@DatabaseEntity`注解信息,然后根据这些信息构建并执行SQL查询。这种方式使得我们的数据库访问层可以无需修改就能适应不同的实体类,从而提高了代码的可...

Global site tag (gtag.js) - Google Analytics