java反射创建实例_java反射小实例

利用反射实现

对配置文件的更改达到更改方法的目的

文件夹目录

8d95f9a70b64fa9724d21acb803fbf7f.png

首先Student类中有个sleep方法

e98a09cac6190a589c8826b407fb2620.png

pro.properties定义了参数

5f76c56cb35ab467312479cfae37366a.png

最后是RelectTestMain。

package com.reflex.test;

import java.io.IOException;

import java.io.InputStream;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.Properties;

import javax.annotation.Resource;

import javax.annotation.Resources;

import com.reflex.bean.Person;

import com.reflex.bean.Student;

public class RelectTestMain {

public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {

/*1、加载配置文件

* 用类名.class.getResourceAsStream("/xx")或者

* 类名.class.getClassLoader().getResourceAsStream("xx");

* 区别在于前者是需要反斜杠,后者不需要

* */

Properties properties = new Properties();

properties.load(RelectTestMain.class.getResourceAsStream("/pro.properties"));

//2、获取配置文件中定义的数据

String className = properties.getProperty("className");

String methodName = properties.getProperty("methodName");

//3、加载该类进内存

Class cls = Class.forName(className);

//4、创建类对象

Object obj = cls.newInstance();

//5、获取对象方法

Method method = cls.getMethod(methodName);

//6、执行方法

method.invoke(obj);

}

}

8ba757b0dfbee325e8a8e3980c94c063.png

如果需要传入参数,则在获取对象的时候使用getDeclaredMethod方法,附上参数类的class,最后再在invork调用方法的时候附带上参数。(这里偷工减料参数直接写了,最好也是通过配置动态加载进来

2bceb9261ea09c2ca5ab13c317666bed.png

624a2479c8e006d8f9638129c125f3bc.png

7bad91c2c3a67601ba11ccbb1c379168.png

java反射技术实例

java反射技术实例​1. [代码][Java]代码     package com.gufengxiachen.java.reflectiontest; public class Person {p ...

java 反射的实例

JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 ...

java 反射创建实例与new创建实例的区别

new创建实例 new创建一个编译时已知的类的实例,也即是静态的创建实例: 可以调用类的任何构造器来创建实例: 速度更快,由于可以将需要的类写入字节文件中(hardcoded into the byt ...

Java反射的实例

JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;         这种动态获取的信息以及动态调用对象的方法的功能称为ja ...

Java反射机制实例解析

1.获取想操作的访问类的java.lang.Class类的对象     2.调用Class对象的方法返回访问类的方法和属性信息     3.使用反射API来操作      每个类被加载后,系统会为该类 ...

java反射机制实例

1.通过数据库字段反射给对象实例赋值 convertClass.java /** * 通过反射构造对象 * @param obj * @param rs * @return */ public Obj ...

java反射简单实例

这篇博友的总结的反射知识点是比较全面的 http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html 下面介绍我用反射做的两个功能 ...

java封装小实例

封装是java语言的一个重要的特性,通过把对象的属性和操作方法封装在同一个类中,对外只提供公共方法对这些数据进行set和get,同时封装也能对方法进行封装.总之封装能够有效地隐藏内部的代码细节,从而使 ...

java反射小例子

package com.txwsqk.reflect; public class Car { private String brand; private String color; private i ...

随机推荐

【转载】H264--1--编码原理以及I帧B帧P帧

---------------------- 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理 ...

codevs 3290 华容道

HAHAHA BFS+SPFA. #include #include #include #include&lt ...

保护模式下pmtest1.asm的理解

整个代码对应内存线性地址分为四段,[gdt] [code32] [video32] [code16] 代码先在实模式[code16]下运行,code16中的cs就是系统分配的该程序物理地址的基址. 编 ...

easyui常用控件样式收藏

CSS类定义: div easyui-window                               window窗口样式 属性如下: 1)       modal:是否生成模态窗口.tru ...

趣味理解ADO.NET对象模型

为了更好地理解ADO.NET的架构模型的各个组成部分,我们可以对ADO.NET中的相关对象进行图示理解,如图所示的是ADO.NET中数据库对象的关系图. 讲究完关系图后,为了加深大家的理解,我们可以用 ...

关于c++的引用

引用的本质 引用事实上就是两个变量指向同一个地址 int x; int &y = x; cout << &x << endl; cout << &a ...

集合之LinkedList源码分析

转载请注明出处:http://www.cnblogs.com/qm-article/p/8903893.html 一.介绍 在介绍该源码之前,先来了解一下链表,接触过数据结构的都知道,有种结构叫链表, ...

Networx蓝屏问题

本人系统win7专业版64位. 从5月底开始就时不时有蓝屏发生,而且可以说是没有任何征兆就"啪"的一下蓝了... 有时候是隔个四五天蓝屏一次,有时候一天都能蓝好几次,实在是让人恼火 ...

ORM查询api

下面的方法都是对查询的结果进行出理:比如objects.filter.values()... 1)values(*field):返回一个可迭代的字典序列

HGOI20180831 NOIP2018模拟

input1: 4 4 4 4 4 3 2 4 5 4 5 5 5 1 7 3 2 output1: Yes Yes Yes No 好的吧数学题QwQ考场上没人做出来qwq 就是判断两个矩形能否互相放 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值