`
千年松鼠
  • 浏览: 25840 次
文章分类
社区版块
存档分类
最新评论

java 动态调用方法

阅读更多
最近在项目中遇到这样一个问题:有一个javabean包含几十个字段,在对该bean注入数据的过程中又对应的存在几十种情况,比如这样
for(int i=0;i<70;i++){
//每个i值对应一个不同字段的set方法
}

作为超级菜鸟的我当时想到的最直接的解决办法是用switch语句...,但是这样需要case 70种情况,这得写多少冗余代码啊——果断放弃,另寻出路。
于是想到了java有反射机制,想着是否能实现动态调用方法,去查了一下,找到了解决办法,这里是我参考的讲java反射机制的帖子http://blog.csdn.net/justinavril/article/details/2873664

下面是代码
model.getClass().getMethod(PriceDao.methodArray[i], new Class[]{float.class}).invoke(model, new Object[]{i});


model是类的对象,通过getClass()方法得到该对象所属的类。
再通过Class的getMethod("要调用的方法名",new Class[]{该方法的参数类型})得到想要动态调用的方法。
最后调用Method的invoke(调用该方法的对象, new Object[]{参数})方法开始调用。

整个过程相当于把实例化反向走了一遍,还是很实用的。
分享到:
评论

相关推荐

    java动态调用方法

    Java动态调用方法是Java反射机制的一个重要应用,它允许我们在程序运行时,根据需要动态地获取类的信息并调用其方法。这种能力为代码的灵活性和可扩展性提供了强大的支持,尤其在处理不确定的对象类型或者需要在运行...

    Java动态调用webService,axis2动态调用webService

    本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...

    Java反射调用方法

    Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查和操作类、接口、对象等的内部信息,包括但不限于获取类的方法、字段、构造器等,并能动态调用方法和修改字段值。这个特性使得Java具有了更...

    基于JavaParser的代码调用链分析,可以用于分析Java代码的方法调用链.zip

    这个压缩包中的内容可能包含了一系列使用JavaParser进行代码分析的示例或工具,特别是关于方法调用链的分析。这种方法调用链分析在软件工程中具有重要的应用价值,比如代码审查、性能优化、依赖关系理解以及重构等。...

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    Java动态调用实例

    在Java编程中,动态调用是一种强大的特性,它允许程序在运行时决定要执行哪个方法或访问哪个对象,而不是在编译时固定。这主要通过Java的反射API和接口实现。下面将详细解释这些概念以及如何在一个实际示例中应用...

    groovy和Java相互调用1

    Java调用Groovy类则稍微复杂一些,通常有两种主要方法: 1. **方法1:直接调用** - 如果你的开发环境(如IntelliJ IDEA或Eclipse)已经安装了Groovy解释器插件,那么可以直接在Java代码中像调用Java类一样调用...

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...

    三种方式实现java远程调用(rmi),绝对可用

    在提供的压缩包文件中,"三种方式(原始方式_spring_jndi)实现java远程调用(rmi)"包含了相关的示例代码,帮助开发者理解并实践这三种RMI实现方法。在MyEclipse或其他Java开发环境中导入这些代码,可以进行调试和...

    java调用c#样例

    标题"java调用c#样例"指的是使用Java语言通过Jacob库调用C#编写的动态链接库(DLL)。C# DLL通常包含.NET Framework中的方法和功能,而Java应用程序可以借助Jacob库来访问这些功能,从而实现跨语言的互操作性。 ...

    55.java方法调用.zip

    55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java方法调用.zip55.java...

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动...只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载

    Java中调用动态库dll的方法 源代码

    总的来说,Java调用动态库DLL主要依赖于JNI或第三方库。虽然JNI提供了更底层的控制,但设置过程较为复杂;而JNA则提供了更为方便的API,降低了门槛。在实际项目中,应根据需求和团队能力选择合适的方法。

    Java调用动态链接库(Java 调用 DLL)

    Java调用动态链接库(DLL)是Java编程中一个比较特殊的技术,主要涉及到Java与本地代码的交互。在Windows系统中,DLL(Dynamic Link Library)是实现函数复用的一种方式,它包含了一系列可供其他程序调用的函数或数据...

    JAVA调用DLL方法 JAVA调用DLL方

    ### JAVA调用DLL方法 在跨平台开发领域中,Java作为一种强大的编程语言,因其具有良好的移植性和跨平台性而被广泛使用。然而,在某些特定情况下,我们可能需要调用本地库(例如DLL文件)来实现特定功能或提高性能。...

    C++调用Java方法

    Android Studio项目,此Demo实现Java调用C++函数,然后C++函数回调Java方法、纯C++直接调用Java方法,此为github地址链接

    ( java调用js__方法.docx

    Java 调用 JS 方法详解 Java 调用 JS 方法是指在 Java 代码中调用 JavaScript 代码的方法,从而实现 Java 和 JavaScript 之间的交互。在本文中,我们将详细介绍 Java 调用 JS 方法的实现步骤和相关知识点。 Java ...

    java 调用动态库

    使用JNI,你需要编写一个Java类,声明native方法,然后使用`javah`工具生成C/C++头文件,再编写对应的C/C++代码实现这些方法,最后编译成动态库供Java调用。 以下是一个简单的JNI示例,同样调用`doSomething()`函数...

    Java调用动态库方法说明

    Java调用动态库方法主要涉及Java的JNI技术,即Java Native Interface。JNI允许Java代码和其他编程语言(如C++或C)写的代码进行交互。在Java中直接调用C或C++编写的DLL(动态链接库)是不支持的,因此需要通过JNI...

    Java Jsp 调用ireport动态模板打印

    Java JSP调用iReport动态模板打印是一种在Web应用程序中实现报表打印的常见技术。iReport是一款开源的报表设计工具,它可以与Java、JSP、Servlets等进行集成,为开发者提供灵活的报表生成和打印功能。在这个场景下,...

Global site tag (gtag.js) - Google Analytics