美文网首页
Java基础-反射

Java基础-反射

作者: Java小工匠 | 来源:发表于2017-06-01 17:17 被阅读0次

1、反射的机制是什么?

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

2、反射可以做什么?

(1)在运行时可以获取任意一个类的所有属性和方法。
(2)在运行时可以获取任何一个对象的属性和方法。
(3)在运行时可以构造任意对象。
(4)在运行时可以调用任意方法。
(5)生成动态代理

3、反射相关的API

(1)获取父类与接口
(2)获取类的全部属性
(3)获取类的全部方法
(4)获取类的全部构造函数
(5)获取类的类的注解
(6)实例化一个Class对象
(6)实例化对象构造函数
(7)反射操作对象的属性
(8)反射调用对象的方法
(9)反射机制与动态代理

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

//定义支付接口
interface PayService {
    public String pay(int money);
}

// 定义支付接口实现
class PayServiceImpl implements PayService {
    public String pay(int money) {
        return "pay:" + money;
    }
}

// 定义动态代理助手
class MyInvocationHandler implements InvocationHandler {
    private Object obj = null;

    public Object bind(Object obj) {
        this.obj = obj;
        return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
    }

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object temp = method.invoke(this.obj, args);
        return temp;
    }
}

public class TestReflect {
    public static void main(String[] args) throws Exception {
        MyInvocationHandler handler = new MyInvocationHandler();
        PayService payService = (PayService) handler.bind(new PayServiceImpl());
        String rs = payService.pay(1000);
        System.out.println(rs);
    }
}

4、反射应用实例

(1) 反应应用在工厂模式

相关文章

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • Java基础之反射

    Java基础之反射 反射基本介绍 反射的使用通过反射调用属性和方法通过反射获取配置文件 反射基本介绍 Java反射...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java高级知识

    反射 sczyh30 深入解析Java反射(1) - 基础深入解析Java反射(2) - invoke方法深入探究...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • java 反射进阶

    1.java反射基础 2.java反射进阶 上一节介绍了反射基础,本节介绍更深入的反射概念。 1.获取不到Clas...

  • java 反射基础

    1.java反射基础 2.java反射进阶 反射的两个显著的作用 反编译: .class —> .java 通过...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • 硬核干货!备战阿里,字节,腾讯 2020最新Java最常见面试题

    Java Java 基础这部分一些简单的问题就直接没有放上来。 基础: Java 反射?反射有什么缺点?你是怎么理...

网友评论

      本文标题:Java基础-反射

      本文链接:https://www.haomeiwen.com/subject/ejuefxtx.html