Java反射+注解案例
2019-01-14 14:20
459 查看
注解类代码,注解的属性可以有多个:
package reflect; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /*** * java注解默认只会保留在字节码文件里面 * 运行期间注解会被抹掉 * 可以用@Retention来指定注解的保留时间 * 注: * @Retention是元注解,即用来解释其他注解的注解 * Retentionpolicy.RUNTIME是表示注解保留到运行时。 * @author zlq1252 * */ @Retention(RetentionPolicy.RUNTIME) public @interface Test { /* * 注解的属性
*
*注解可以有多个属性。
*如果属性名为value时,可以不制定属性名(只有一个属性时) */ public String value(); }
方法类,在方法类的方法上加上注解代码如下:
package reflect; public class C { public void f1() { // TODO Auto-generated method stub System.out.println("C'S f1"); } @Test(value="淡淡") public void hello() { // TODO Auto-generated method stub System.out.println("C'S hello"); } @Test(value="洋洋") public void bala() { // TODO Auto-generated method stub System.out.println("C'S bala"); } }
反射类代码,通过反射类获得所有具有代码注解的方法并执行,同时可以过的注解的属性:
package reflect; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Scanner; public class TestCase3 { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String className = sc.nextLine(); Class clazz = Class.forName(className); Object obj = clazz.newInstance(); Method[] methods = clazz.getDeclaredMethods(); for(Method mh:methods){ //获得加在方法前面的@Test Test test = mh.getDeclaredAnnotation(Test.class); System.out.println("@Test:"+test); //执行带有注解的方法 if(test!=null){ mh.invoke(obj); //读取@Test的属性值 String v1 = test.value(); System.out.println("@Test的属性值:"+v1); } } } }
相关文章推荐
- Java反射应用案例
- Java注解(Annotation)详解(四)——注解反射生成SQL语句
- Java编程之反射中的注解详解
- java反射--注解的定义与运用以及权限拦截
- JAVA反射机制【详解+案例】
- Java反射 具体需求实现案例二
- Java反射 具体需求实现案例三
- java反射介绍及案例
- Java高级之注解、反射
- Java 自定义注解&通过反射获取类、方法、属性上的注解
- Java注解教程:自定义注解示例,利用反射进行解析
- java中的反射和注解
- Java反射遍历注解
- java之反射-注解
- Java开发框架时编写的小功能(反射获取Method参数描述及注解描述)
- java通过反射+注解获取两个对象改变的内容
- 【转】java 4000 利用注解、反射模拟ORM实现
- Spring Framework 5.0:使用注解的方式来加载Bean、入门注解、了解java反射
- Java反射案例详解
- JAVA 与 MyCat(5) 类的加载 Java内省/反射机制 注解Annotation 详解