输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?
天涯尽头无女友
对于那些想要在Java 7中使用直接代码示例的人:Dog 类:package com.mypackage.bean;public class Dog {
private String name;
private int age;
public Dog() {
// empty constructor
}
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void printDog(String name, int age) {
System.out.println(name + " is " + age + " year(s) old.");
}}ReflectionDemo 类:package com.mypackage.demo;import java.lang.reflect.*;public class ReflectionDemo {
public static void main(String[] args) throws Exception {
String dogClassName = "com.mypackage.bean.Dog";
Class> dogClass = Class.forName(dogClassName); // convert string classname to class
Object dog = dogClass.newInstance(); // invoke empty constructor
String methodName = "";
// with single parameter, return void
methodName = "setName";
Method setNameMethod = dog.getClass().getMethod(methodName, String.class);
setNameMethod.invoke(dog, "Mishka"); // pass arg
// without parameters, return string
methodName = "getName";
Method getNameMethod = dog.getClass().getMethod(methodName);
String name = (String) getNameMethod.invoke(dog); // explicit cast
// with multiple parameters
methodName = "printDog";
Class>[] paramTypes = {String.class, int.class};
Method printDogMethod = dog.getClass().getMethod(methodName, paramTypes);
printDogMethod.invoke(dog, name, 3); // pass args
}}输出: Mishka is 3 year(s) old.您可以通过以下方式调用带有参数的构造函数:Constructor> dogConstructor = dogClass.getConstructor(String.class, int.class);Object dog = dogConstructor.newInstance("Hachiko", 10);或者,您可以删除String dogClassName = "com.mypackage.bean.Dog";Class> dogClass = Class.forName(dogClassName);Object dog = dogClass.newInstance();并做Dog dog = new Dog();Method method = Dog.class.getMethod(methodName, ...);method.invoke(dog, ...);建议阅读: 创建新类实例
输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?相关推荐
- Java中获得了方法名称的字符串,怎么样调用该方法
问题: Java中获得了方法名称的字符串,怎么样调用该方法 如果我有以下两个变量 Object obj; String methodName = "getName"; 在不知道ob ...
- 【Android NDK 开发】JNI 方法解析 ( C/C++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 )
文章目录 I . 调用 Java 方法流程 II . 获取 jclass 对象 ( GetObjectClass ) III . 获取 jclass 对象 ( FindClass ) IV . JNI ...
- c 调用java post方法_C#调用Java方法(详细实例)
C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...
- JNI基础 c语言调用java方法
利用c语言调用java无参的方法 java方法 com.example.jniparsedata.ParseData类中的方法 //打印 public void sayHelloFro ...
- 本地方法(JNI)——调用 java 方法
[0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)--调用 java 方法 的基础知识 : 2) C语言调用java 方法,包括: ...
- xsl调用java方法传参_Java中的XSL转换:一种简单的方法
xsl调用java方法传参 XSL转换 (XSLT)是将一个XML文档转换为另一个XML文档的强大机制. 但是,在Java中,XML操作相当冗长和复杂. 即使是简单的XSL转换,也必须编写几十行代码- ...
- C#调用Java方法(详细实例)
C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...
- js调用java_Js调用Java方法并互相传参的简单实例
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. public class PluginTest extends P ...
- cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法
cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法 cocos2dx在Android studio运行 使用Andr ...
- js调java并传参_Js调用Java方法并互相传参的简单实例
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...
最新文章
- 数学实验matlab课后习题答案,matlab数学实验教程答案
- 基于数据处理的CSV格式行列变换及数据清洗
- ES6新特征总结与介绍——声明与表达式
- 跟着老桂学ASP.NET Core 2.0
- 各个大学的录取通知书,哪个颜值最高?
- 《JavaScript DOM编程艺术》笔记
- 【Mac】Mac 下安装MySQL优化工具mysqltuner执行报错 [!!] Attempted to use login credentials
- IT行业里有这么多聪明人,他们之间的区别在哪里?
- 折叠list ExpandableList+ BaseExpandableListAdapter 自定义 折叠列表
- Vue 获取验证码60s倒计时方法
- 关于点击锁(防止多次点击)
- 七年级上册数学计算机教学视频,人教版初中数学七年级上册
- centos7 pe系统安装_u盘pe修复系统引导u盘安装centos7 无法开机
- STM32学习笔记——USB鼠标
- 辩证法——自然观、自然科学方法论和科学观
- 艺多不压身 -- 目录
- 冒死改造好基友小黄鸭,结果出乎意料?!
- C语言实现,输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
- MySQL 数据库之 MMM 高可用架构构建
- JavaWeb 购物车项目
热门文章
- Linux定时器:无节拍机制tickless(CONFIG_NO_HZ)
- DPDK PMD( Poll Mode Driver)轮询模式驱动程序
- Dell服务器与IntelX520万兆网卡兼容性问题解决过程
- mysql多线程导出_MySQL多线程导入导出工具Mydumper
- Flask的Rsponse响应对象
- Vue3计算属性computed
- 翻转单词顺序列C语言,剑指offer刷题之c、c++实现的翻转单词顺序列
- mybatis 原理_Mybatis大揭秘:plugin插件设计原理
- 是否需要配置环境变量,比如maven,jdk等
- Kafka(一)背景和概念