zoukankan      html  css  js  c++  java
  • Java的反射和代理以及注解

    最近接触到java的反射和代理(接触的有点迟了。。。),还是有必要总结下

    1. Java的反射

      有的时候我们需要在程序运行的时候获取类、方法等信息用于动态运行,这个时候反射就能够帮我们找到类、方法、成员变量

     关于反射的原理,java运行时会把类加载到。。。所以运行时可通过反射机制,取到这些信息。spring等框架使用的就是反射代理的机制。

    2. Java代理

    我理解的代理就是对一个已经存在的类或者方法进行二次封装,比如日志记录,或者做其他的操作,尝到甜头了,真的是非常好用啊!

    package com.fxl.test;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    
    public class TestProxy{
    
        public static void main(String[] args) throws Throwable {
            
            MyProxy pro = new TestProxy().new MyProxy(new TestProxy());
            
            
            Class c = Class.forName("com.staryea.strategy.test.TestProxy");
            
            Method method = c.getMethod("add", new Class[]{Integer.class,Integer.class});
            
            Object o = pro.invoke(c, method, new Integer[]{2,3});
            System.out.println(o);
        }
        
        public int add(Integer a, Integer b){
            
            return a+b;
            
        }
        
        class MyProxy implements InvocationHandler{
            
            private Object obj;
            
            public MyProxy(Object obj) {
                this.obj = obj;
            }
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                
                System.out.println("调用方法--->"+method.getName());
                
                Object result = method.invoke(obj, args);
                System.out.println("result--->"+result);
                return result;
            }
        }
        
        
    }

     JAVA----自定义注解

      关于java的注解,最近好像明白了一些。咋说呢,注解这个小东西还是得和java的反射一起玩儿,不然不起作用,哈哈,注解这个弱受。但是注解这玩意儿还是蛮强大的。

      注解可以是类的注解、方法的注解、属性的注解。我的理解就是类、方法、属性的属性,不知道我理解的对不对。

      注解的使用(先列个提纲,明天再写,领导在旁边,哈哈):

      1. 注解编写。。。

      2. 调用。。。

      3. 其他

  • 相关阅读:
    【转】漫谈linux文件IO--io流程讲的很清楚
    iostat命令
    【转】ATA Secure Erase
    同步IO和异步IO
    fio2.1.10--README
    【转】地址空间、内核空间、IO地址空间
    博客收藏--sailing的博客
    Cosmos OpenSSD架构分析--HOST interface(未完)
    nginx 过滤zip 类型的文件
    freeswitch GUI界面(portal)
  • 原文地址:https://www.cnblogs.com/FancyLian/p/8085855.html
Copyright © 2011-2022 走看看