java利用反射调用类的某个方法
java利用反射机制 可以动态调用某个类的某个方法,在 扩展系统功能或提供对外接口时经常用的到。
代码如下:
打印类Print.java
package com.test.reflct;
/**
* 打印类
*
* @date 2015-8-12 下午2:18:42
*/
public class Print { public static void print(String str){
System.out.println("打印测试"+str);
}
}
调用类Test.java:
package com.test.reflct;
import java.lang.reflect.Method;
public class Test {
/**
*
* @return void
*/
public static void main(String[] args) {
try {
//加载类
Class<?> printClass = Class.forName("com.test.reflct.Print");
//获取方法
Method printMethod = printClass.getMethod("print",String.class);
//调用
printMethod.invoke(printClass.newInstance(),"123");
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行后截图:
aaarticlea/png;base64,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" alt="" />
java利用反射调用类的某个方法的更多相关文章
- C# 利用反射调用类下的方法
namespace TestReflection { public partial class Form1 : Form { public Form1() { InitializeComponent( ...
- java利用反射获取类的属性及类型
java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...
- java利用反射访问类的私有(private)属性及方法
Java语言中,在一个类中,为了不让外界访问到有的属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的 ...
- Java利用反射取得类的所有信息
Java中可以利用反射获取类的名称.构造函数.属性.方法.也就是说可以通过反射可以取得类的所有信息(不管该成员是否封装为private). 如有下面的Dept类定义: package org.lyk. ...
- C#如何通过反射调用类下的方法
首先模拟一个mvc的项目,创建一个业务类(HomeService),在类下创建3个方法 public class HomeService { /// <summary> /// 无参方法 ...
- java通过反射调用不同参数的方法
import java.lang.reflect.Method; public class testReflect { /** * @param args */ public static void ...
- Java_通过反射调用类中的方法
先上一个基本的封装: /** * 获取classType * * @param type * @param provinceCode * @param cityCode * @return * @th ...
- Java基础反射-调用类
Student类 package com.test.wang; import java.lang.reflect.Constructor; import java.lang.reflect.Field ...
- java通过反射调用有参数的方法
public static void eachCfg(Class Initclass,String taskType){ Field[] fields = Initclass.getDeclaredF ...
随机推荐
- PHP图片上传程序(完整版)
从PHP100上搜刮来的,功能很强大.几乎考虑到了每个细节,与大家分享!~~~ <meta http-equiv="Content-Type" content="t ...
- 在windows下的mysql使用
具体可参照http://jingyan.baidu.com/article/3aed632e19b5e8701080918f.html 1.安装mysql. 直接百度搜索mysql下载.
- libiconv2.dll
一.问题描述 在我使用MinGW的mingw32-make工具的时候,提示错误“libiconv-2.dll找不到”. 二.问题解决 1.从脚本之家下载“libiconv-2.dll”,下载地址“ht ...
- statusBar显示白色字体
设置状态栏显示颜色为白色. a. 在info.plist中,添加一项,选择View controller-based status bar appearance(箭头下拉中最后一项),设置为no; b ...
- NOI冲刺计划2
吐槽:距离上一次写计划还没有一个月呢,咋又喊要重写捏?可以直接从上一次的计划粘上个一大半. bzoj刷题速度还是在计划之内的,这大半个月中,我bzoj刷进500道,知识方面主要是把莫比乌斯反演系统性的 ...
- Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flas
转自Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player Chromium谷歌的开源浏览器将不再支持Netscape浏览器插件API,Adobe ...
- python邮件收发SAMPLE
#!/usr/bin/env python # -*- encoding: utf-8 -*- import os, socket from time import localtime, strfti ...
- 使用GO语言灵活批量ssh登录服务器执行操作
摘要: 在工作中时常需要登录服务器做一系列操作,每次输入ssh xxx总是很麻烦.这时候为什么不考虑写一个通用的小脚本呢? go语言是一门新兴语言,能够在很多地方发挥总用.初学go语言,做了这么一个小 ...
- Exporter - 实现默认的导入方法用于模块
Exporter - 实现默认的导入方法用于模块 简介: In module YourModule.pm: package YourModule; require Exporter; @ISA = q ...
- C++实现RTMP协议发送H.264编码及AAC编码的音视频(转)
C++实现RTMP协议发送H.264编码及AAC编码的音视频(转) RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia ...