java反射获得注释_Java反射、注解
1.反射
案例:
需求:写一个“框架”,不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法
实现:
1.配置文件
2.反射
步骤:
1.将需要创建的对象的全类名和需要执行的方法定义在配置文件中
2.在程序中加载读取配置文件
3.使用反射技术来加载类文件进内存
4.创建对象
5.执行方法
代码:
结构:
在src下创建File(配置文件),命名pro.properties
文件内容:
className =cn.itcast.domain.Student
methodName= sleep
Student中有sleep方法:
public classStudent {public voidsleep() {
System.out.println("sleep...");
}
}
Person中有eat方法:
public classPerson {public voideat() {
System.out.println("eat...");
}public voideat(String food) {
System.out.println("eat..."+food);
}
}
ReflectTest:
/*** 框架类*/
public classReflectTest {public static void main(String[] args) throwsException {
/*前提:不能改变该类的任何代码,可以创建任意类的对象,可以执行任意方法*/
//1.加载配置文件//1.1创建properties对象
Properties pro = newProperties();//1.2加载配置文件,转换为一个集合//1.2.1获取class目录下的配置文件
ClassLoader classLoader = ReflectTest.class.getClassLoader();
InputStream is= classLoader.getResourceAsStream("pro.properties");
pro.load(is);//2.获取配置文件中定义的数据
String className = pro.getProperty("className");
String methodName= pro.getProperty("methodName");//3.加载该类进内存
Class cls =Class.forName(className);//4.创建对象
Object obj =cls.newInstance();//5.获取方法对象
Method method =cls.getMethod(methodName);//6.执行方法
method.invoke(obj);
}
}
运行ReflectTest的结果:
如果想要读取不同类的不同方法,不需要修改ReflecTest的代码,只要修改配置文件pro.properties的内容即可,例如,将代码修改如下:
className =cn.itcast.domain.Person
methodName= eat
运行ReflectTest的结果:
PS:后来想到Person中还有一个有参的eat方法,实现调用的方法:将ReflectTest中下列语句:
//5.获取方法对象
Method method =cls.getMethod(methodName);//6.执行方法
method.invoke(obj);
修改为:
//5.获取方法对象
Method method = cls.getMethod(methodName,String.class);//6.执行方法
method.invoke(obj,"饭");
运行ReflectTest的结果:
2.注解
java反射获得注释_Java反射、注解相关推荐
- java 读取 excel 注释_java利用注解实现简单的excel数据读取
搜索热词 实现工具类 利用注解实现简单的excel数据读取,利用注解对类的属性和excel中的表头映射,使用Apache的poi就不用在业务代码中涉及row,rows这些属性了. 定义注解: @Ret ...
- java反射最佳实践_Java 反射最佳实践 – 码农网
标签: 概要:最简单优雅的使用反射. 本文的例子都可以在示例代码中看到并下载,如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request.本文的示例代码主要 ...
- java反射的原理_java反射机制的实现原理
java反射机制的实现原理 反射机制: 所谓的反射机制就是java语言在运行时拥有一项自观的能力. 通过这种能力可以彻底的了解自身的情况为下一步的动作做准备. 下面具体介绍一下java的反射机制.这里 ...
- java反射 数组类型_Java反射-数组
通过反射使用数组有时会比较棘手.特别是需要获得一个特定类型数组的Class对象,如int[]等.本文将讨论如何通过反射创建数组和获得他们的Class对象. 注意:本文在阅读Eyal Lupu的博客&q ...
- java反射随意值_Java反射总结
能够分析类能力的程序称为反射.对于给定的Java类名,可以通过反射获取类的信息.将类的各成分映射出相应的Java类. Class类 在程序运行期间,Java运行时系统始终对所有的对象维护一个被称为运行 ...
- java反射源码_java反射技术详解附源码
在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...
- java反射创建实例_Java反射创建实例
Java反射创建实例 package com.wkcto.chapter08.demo02; import java.lang.reflect.Constructor; import java.lan ...
- java 反射 工厂模式_Java反射机制demo(七)—反射机制与工厂模式
Java反射机制demo(七)-反射机制与工厂模式 工厂模式 简介 工厂模式是最常用的实例化对象模式. 工厂模式的主要作用就是使用工厂方法代替new操作. 为什么要使用工厂模式?直接new不好吗? 直 ...
- java方法示例注释 @_Java注释和真实世界的Spring示例
java方法示例注释 @ "注释"是编程语言定义的一种,并用作"标记". 可以将它们视为编程语言引擎可以理解的注释行. 它们不会直接影响程序的执行,但会直接影响 ...
最新文章
- 「建模调参」之零基础入门数据挖掘
- Python 把OpenCV 获取的图像传递到C
- Qt学习笔记之QLatin1Char
- android StringBuffer实现换行
- JDK14性能管理工具:Jconsole详解
- zookeeper的四种类型的节点
- 信号学习第一课--基础知识
- mach-O文件结构分析
- ISO 17799 /27001标准简介
- xftp6成功安装教程(踩坑系列)
- 最全PR曲线、ROC曲线以及AUC计算公式详解
- OpenCV-Calibration-Detailed Description翻译
- 百度地图 InfoWindow上添加点击事件
- Cradle 从工程学角度预测血管和气管的流量并研究生物
- VBA按座次排位(交错排座,向一侧或两侧排座,混合排座)
- oracle nested loops outer,11g对Nested Loops的改进
- java算术表达式_一文了解如何用 Java 进行算术表达式计算
- 分析:公众号运营+引流,怎么从0到1运营
- STM32:使用ST官方的原理图和PCB封装
- 盒须图 python_什么是盒须图?
热门文章
- windows进程生产者消费者代码c语言,生产者消费者问题---C语言实现
- iOS多线程中performSelector: 和dispatch_time的不同
- python连接服务器怎么用_使用Python连接到远程服务器
- 山东计算机基础模拟题及答案,2016山东农信社考试模拟题--计算机基础知识答案(1)...
- linux目录加了一把锁怎么办,linux 文件加锁 lockf 小结
- php写实体类,PHP实体类
- java 单例写法_java 单例模式的几种写法
- iphone怎么重启_苹果手机进入itunes怎么退出
- python自动生成鸡汤文_20行python代码实现鸡汤智能生成器
- js php 正则差别,正则表达式(括号)、[中括号]、{大括号}的区别小结,正则表达式小结...