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利用反射调用类的某个方法的更多相关文章

  1. C# 利用反射调用类下的方法

    namespace TestReflection { public partial class Form1 : Form { public Form1() { InitializeComponent( ...

  2. java利用反射获取类的属性及类型

    java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...

  3. java利用反射访问类的私有(private)属性及方法

    Java语言中,在一个类中,为了不让外界访问到有的属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的 ...

  4. Java利用反射取得类的所有信息

    Java中可以利用反射获取类的名称.构造函数.属性.方法.也就是说可以通过反射可以取得类的所有信息(不管该成员是否封装为private). 如有下面的Dept类定义: package org.lyk. ...

  5. C#如何通过反射调用类下的方法

    首先模拟一个mvc的项目,创建一个业务类(HomeService),在类下创建3个方法 public class HomeService { /// <summary> /// 无参方法 ...

  6. java通过反射调用不同参数的方法

    import java.lang.reflect.Method; public class testReflect { /** * @param args */ public static void ...

  7. Java_通过反射调用类中的方法

    先上一个基本的封装: /** * 获取classType * * @param type * @param provinceCode * @param cityCode * @return * @th ...

  8. Java基础反射-调用类

    Student类 package com.test.wang; import java.lang.reflect.Constructor; import java.lang.reflect.Field ...

  9. java通过反射调用有参数的方法

    public static void eachCfg(Class Initclass,String taskType){ Field[] fields = Initclass.getDeclaredF ...

随机推荐

  1. BJDP结对编程活动

    7月21日参与了 BJDP北京的活动 在北京首次参与能够参与动手编程活动,感觉挺不错的. 本次活动共有三项内容 1.      金锐分享单元测试的Mocking技术,20 mins 2.      伍 ...

  2. 国内各大互联网公司UED(用户体验设计)团队博客介绍

     UED是什么UED = user experience design,用户体验设计.UED的通常理解,就是“我们做的一切都是为了呈现在您眼前的页面”.UED团队包括:交互设计师(Interactio ...

  3. C# 翻页设计:首页,上一页,下一页,末页 ,跳转

    int pageSize = 0; //每页显示行数 int nMax = 0; //总记录数 int pageCount = 0; //页数=总记录数/每页显示行数 int pageCurrent ...

  4. “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法

    最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误: “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法.如图: 找了好久,终 ...

  5. POJ 1416 Shredding Company

    题目: http://poj.org/problem?id=1416 又16ms 1A了,这人品... #include <stdio.h> #include <string.h&g ...

  6. html 5 中的 6位 十六进制颜色码 代表的意思

    人的眼睛看到的颜色有两种: ⒈ 一种是发光体发出的颜色,比如计算机显示器屏幕显示的颜色: ⒉ 另一种是物体本身不发光,而是反射的光产生 十六进制颜色码 的颜色,比如看报纸和杂志上的颜色. 我们又知道任 ...

  7. 数据结构练习 02-线性结构3. Pop Sequence (25)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

  8. JDBC 基础知识总结

    1.  何谓JDBC  --- Java Database Connectivity. 由Sun 公司提供的访问数据库的一组java类和接口,用来对数据库进行链接.发送SQL语句.处理返回结果,为开发 ...

  9. jquery之ajaxfileupload异步上传插件

    点我下载工程代码由于项目需求,在处理文件上传时需要使用到文件的异步上传.这里使用Jquery Ajax File Uploader这个组件下载地址:http://www.phpletter.com/d ...

  10. C语言中的volatile

    转自C语言的那些小秘密之volatile volatile的重要性对于搞嵌入式的程序员来说是不言而喻的,对于volatile的了解程度常常被不少公司在招聘嵌入式编程人员面试的时候作为衡量一个应聘者是否 ...