`

java 通过方法名称动态调用方法

    博客分类:
  • Java
 
阅读更多
package lee;

import java.lang.reflect.Method;

public class InvokeTest {
	/**
	 * 有参数有返回值的方法
	 */
	public String returnString(String input) {
		return "returnString(String input) Success!/n=>parameter1:" + input;
	}

	/**
	 * 有参数无返回值的方法
	 */
	public void outputFromInput(String input) {
		System.out.println("outputFromInput(String input) Success! /n=>Parameter1:"+ input);
	}

	/**
	 * 无参数无返回值的方法
	 */
	public void noParameter() {
		System.out.println("noParameter() Success! /n=>No Parameter!");
	}

	/**
	 * 多个参数无返回值的方法
	 */
	public void multiParameter(String a, String b) {
		System.out.println("multiParameter(String a , String b) Success!/n=>Parameter1:"+ a + " Parameter2:" + b);
	}

	public static void main(String args[]) throws Exception {
		InvokeTest invokeTest = new InvokeTest();
		Class c = Class.forName("lee.InvokeTest");
		// Class c = Class.forName(invokeTest.getClass().getName());
		/*
		 * Class.forName(String parameter); 这个方法的参数为要调用的类的名称,如果需要调用的类有包名则要写完整的包名
		 * 你也可以实例化类后通过getName()来获得完整的名称
		 */

		Method m1 = c.getMethod("returnString", String.class);
		Object returnS = m1.invoke(invokeTest, new Object[] { "Success!" });
		System.out.println((String) returnS);

		Method m2 = c.getMethod("outputFromInput", String.class);
		m2.invoke(invokeTest, new Object[] { "Success!" });

		Method m3 = c.getMethod("noParameter");
		m3.invoke(invokeTest, new Object[] {});

		Class cls[] = { String.class, String.class };// 多个参数
		Method m4 = c.getMethod("multiParameter", cls);
		// Method m4 = c.getMethod("multiParameter", new
		// Class[]{String.class,String.class});//你也可以这样写
		m4.invoke(invokeTest, new Object[] { "p1", "p2" });

	}
}

 

分享到:
评论

相关推荐

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

    能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用...

    Java程序设计基础:调用方法-方法的嵌套调用.pptx

    在定义方法时,一个方法内不能再定义另一个方法,即不能嵌套定义,但是在调用一个方法的过程中,还可以调用另一个方法,这是方法的嵌套调用。 方法的嵌套调用 假设main方法中调用a方法,a 方法中调用b方法,具体流程...

    Springboot Thymeleaf模板文件调用Java类静态方法

    方法名(参数)}”这种格式来调用Java类的静态方法。 开发环境:IntelliJ IDEA 2019.2.2 Spring Boot版本:2.1.8 新建一个名称为demo的Spring Boot项目。 1、pom.xml 加入Thymeleaf依赖 <groupId>org.spring...

    javacv调用本地摄像头

    依靠javacv开发的调用摄像头技术,javacv0.8版本所以使用前请安装opencv2.4.10,还在研究怎么能够被客户浏览器调用服务器摄像头

    多线程执行指定名称方法 Java

    利用Java的反射机制,提供一个根据方法名执行指定方法的方式。

    java调用Windows应用程序

    是java程序调用windows中的应该程序的例子, 大家可以可以参考一下.

    java调用weka

    java调用weka。weka是很好用的机器学习库,这里就不详细介绍了。 言归正传,要使用程序方式使用weka,步骤如下: 一、在eclipse里新建一个Java project: 1. 建立工程:单击菜单中file->new->Java project,在弹出...

    在EXCEL公式中调用存放在其它单元格中的工作表标签名称

    在EXCEL公式中调用存放在其它单元格中的工作表标签名称

    javatwain 使用扫描仪

    本程序实现了在web页面上,用JAVA的方式,调用扫描仪进行扫描,并上传至远程服务器。并且可以设置扫描范围、扫描精度、以及扫描UI显示等! 该版本在uploadpath参数设置为“http://localhost/xxx.action”,即使用...

    java根据方法名称取得反射方法的参数类型示例

    利用java反射原理调用方法时,常先需要传入方法参数数组才能取得方法。该方法参数数组采用动态取得的方式比较合适

    java如何调用dos名称

    里面详细讲解了如何用Java命令来操作dos命令 进行一些操作

    Java 零基础方法重载.md

    通过声明具有相同名称但不同参数列表的方法,展示了如何根据提供的参数类型和数量来选择不同的方法进行调用。通过输出结果,展示了方法重载的效果,即根据传递的参数类型的不同,选择合适的方法进行计算并返回不同...

    java 实验报告指导书.doc

    java 实验报告指导书.doc 非常好

    java api最新7.0

    javax.naming.spi 提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持。 javax.net 提供用于网络应用程序的类。 javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM ...

    Java开发技术大全(500个源代码).

    invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名问题示例 onlyTest.java 对象传值示例 otherClass.java 从类的外部访问对象的成员 ...

    根据银行账户调用阿里接口更新银行名称

    根据银行卡号调用阿里提供的验证验证银行卡的免费接口获取银行名称等信息,并更新银行名称

    JAVA核心知识点整理.pdf

    Java中的多态性指在一个类实例化时,它可以引用多种不同类型的对象并自动调用适当的方法。这个特征让Java程序员能够更加灵活地编写代码,并且简化了许多任务。 Java中有两种多态性:静态多态性和动态多态性。静态多...

    基础深化和提高-java反射技术

    Java反射技术指的是在运行时动态地获取类的信息、调用对象的方法、操作类的属性等能力。通过反射,程序可以在运行时检查类、实例化对象、调用方法、获取和设置属性,甚至可以动态修改类的结构。 Java反射技术的核心...

    webservice调用,传参代码样例

    各种利用webservice技术代码样例,用axis框架。

    键盘录入和方法调用例题.rar_java_numeralxnd_out_storeerr

    1.开发中要实现人机互动,所以首先要学习键盘录入,可以让程序...2.打印调用,格式:System.out.println(方法名称(参数));3.赋值调用,格式:数据类型 变量名称=方法名称(参数);4.单独调用:方法名称(参数);

Global site tag (gtag.js) - Google Analytics