Java反射特性--获取其他类实例并调用其方法
1. 代码结构
.
├── com
│ └── test
│ └── MyTest.java
└── MainCall.java
2. 代码内容
MyTest.java:
package com.test; public class MyTest
{
public void do_test()
{
System.out.println("Doing test...\n");
}
}
MaiCall.java
import java.lang.reflect.Method; public class MainCall
{
public static void main(String[] args)
{
System.out.println("Hello World!\n"); Class<?> mt = null;
try{
mt = Class.forName("com.test.MyTest");
}catch(Exception e) {
e.printStackTrace();
} System.out.println("ClassName: " + mt.getName()); try{
Method method = mt.getMethod("do_test");
method.invoke(mt.newInstance());
}catch (Exception e) {
e.printStackTrace();
}
}
}
3.编译
javac com/test/MyTest.java
javac MainCall.java
编译成功后:
.
├── com
│ └── test
│ ├── MyTest.class
│ └── MyTest.java
├── MainCall.class
└── MainCall.java
4. 执行
java MainCall得到输出:
Hello World!
ClassName: com.test.MyTest
Doing test...
Java反射特性--获取其他类实例并调用其方法的更多相关文章
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- 反射的应用、获取Class类实例
*准备工作: 包结构:* ======================= Person.java代码: package com.atguigu.java; public class Person { ...
- Java如何获取当前类路径
1.如何获得当前文件路径 常用: (1).Test.class.getResource("") 得到的是当前类FileTest.class文件的URI目录.不包括自己! (2).T ...
- java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- asp.net动态加载程序集创建指定类的实例及调用指定方法
以下类中有三个方法: LoadAssembly:加载指定路径的程序集 GetInstance:根据Type动态获取实例,用泛型接到返回的类型 ExecuteMothod:执行实例中的指定方法 /// ...
- java中获取路径的几种基本的方法
package com.ygh.blog.realpath; import java.io.File; import java.io.IOException; import java.io.Input ...
- java中获取文件或文件夹的路径方法
获取当前类的所在工程路径; 如果不加"/" File f = new File(this.getClass().getResource("").getPath( ...
- java新手笔记11 类的静态属性、方法(单例)
1.Person类 package com.yfs.javase; public class Person { String name;//每个对象上分配 与对象绑定 int age; char se ...
- Java基础之Scanner类中next()与nextLine()方法的区别
java中使用Scanner类实现数据输入十分简单方便,Scanner类中next()与nextLine()都可以实现字符串String的获取,所以我们会纠结二者之间的区别. 其实next()与nex ...
随机推荐
- 图解DataGridView编辑列
WinForm中DataGridView功能强大,除了可以自动绑定数据源外,还可以根据需求编辑列.下面以截图说明添加编辑列的步骤(HoverTreeSCJ 项目实际界面). 1.选择DataGridV ...
- 【C#公共帮助类】JsonHelper 操作帮助类, 以后再也不用满地找Json了,拿来直接用
四个主要操作类:JsonConverter .JsonHelper .JsonSplit .AjaxResult 一.JsonConverter: 自定义查询对象转换动态类.object动态类转换j ...
- [WCF编程]11.错误:错误类型
一.错误概述 不管是哪一种操作,在任意时刻都可能出现不可预期的错误.问题在于我们应该如何将错误报告给客户端.异常和异常处理机制是与特定技术紧密结合的,不能跨越边界的.此外,如果有客户端来处理错误,必定 ...
- EF架构~EF异步改造之路~让DbContextRepository去实现异步接口
回到目录 返回异步与并行目录 上一讲中,我们定义了三个异步操作接口,这回我们将对它进行实现,而有一个基础知识需要大家清楚,那就是实现接口的方式,一般我们使用默认的方式(隐式实现),这种方法实现的接口方 ...
- 前端 angular 和 bootstrap 的安装步骤
1.安装bower模块: npm install -g bower --registry=http://registry.npm.taobao.org 2.创建.bowerrc 文件存放 前端相关的模 ...
- 疯狂Android讲义 - 学习笔记(八)
第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...
- 修改MySQL自动递增值
alter table tablename auto_increment=num 其中tablename为表的名称,num为要设置的新的自动递增值,此时再Insert一条数据,自动递增值即为num,不 ...
- java 中包的概念,常量,静态与继承
一.包的概念:创建,使用. 1.新建包: 最上面一行,之前不能再有其它代码了. package 包名; 注意:包名一般都有命名的规范.例如:com.itnba.maya.zy(从大到小). 2.使用包 ...
- JQuery的ajax
JQuery-AJAX: jQuery load() 方法是简单但强大的 AJAX 方法. $(selector).load(URL,data,callback);(这三个参数可以随意设置几个) @ ...
- Lind.DDD.Authorization用户授权介绍
回到目录 Lind.DDD.Authorization是Lind.DDD框架的组成部分,之所以把它封装到框架里,原因就是它的通用性,几乎在任何一个系统中,都少不了用户授权功能,用户授权对于任何一个系统 ...