反射的引出和应用场景|学习笔记

简介: 快速学习反射的引出和应用场景

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:反射的引出和应用场景】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9765


反射的引出和应用场景

 

内容介绍

一、提出需求:这个有什么用,他能干什么?

二、先看一个问题,反射的应用场景

三、使用反射机制,编写函数的适配器,桥连接

 

一、提出需求:这个有什么用,他能干什么?

前面我们学习过结构体的序列化和反序列化,结构体里可以加一个 tag,为了解决序列化的时候我们可以指定一个 k 的值,用结构体的标签我们在进行序列化的时候他的字段的名称可以根据我指定的名称来进行序列化。

 

二、先看一个问题,反射的应用场景

我们可以说,这里有一个匿名函数

Test1=func(v1 int,v2 int){

t.log(v1,v2,)

}

Test2:=func(v1 int,v2 int,s string){

t.log(v1,v2,s)

}

//将函数赋予变量,相当于函数变量

假设你有一个需求,你想编一个适配器函数用作统一处理接口,比如说你想给我传进来一个函数名称call interface{},args…interface{}){为变量

//内容

}

//实现调用 test1 对应的函数

Bridge(test1,1,2)

//实现调用test2对应的函数

Bridge(test2,1,2,“test2”)

反射的最大价值就是自己写框架

 

三、使用反射机制,编写函数的适配器,桥连接

举个例子,比如说我们想用这个函数来调函数,假如你有结构体,将变量赋于这个结构体,给你一个结构体的实例,要求用反射去拿到这个结构体所有的字段信息,所有的方法信息,然后用反射将他调起来,甚至可以用反射创建一个结构体。

相关文章
|
7月前
|
安全 Java 编译器
深入探讨Java反射:解析机制与应用场景
反射是Java的一种强大而灵活的特性,它允许程序在运行时获取类的信息、构造对象、调用方法和访问字段。在Java中,每个类都有一个对应的Class对象,通过这个对象,我们可以了解类的结构和行为。
195 1
 深入探讨Java反射:解析机制与应用场景
|
24天前
|
安全 Java 数据库连接
如何理解反射
反射之所以被称为框架的灵魂,主要是因为它赋予了我们在运行时分析类以及执行类中方法的能力。通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。
37 5
|
5月前
|
安全 Java
打破常规!JAVA反射技术让你“动态”编程
【7月更文挑战第1天】Java反射技术是动态编程的利器,它揭示了类的内部信息,允许运行时操作对象、调用方法和创建实例。动态加载类、调用方法和创建对象是其常见应用场景,但需注意反射带来的性能损失、安全风险和代码可读性下降。在平衡灵活性与效率时谨慎使用。
47 0
|
5月前
|
设计模式 Java 开发者
工厂设计模式的实现与应用场景分析
工厂设计模式的实现与应用场景分析
|
安全 Java
什么是Java泛型?主要应用场景有哪些?
什么是Java泛型?主要应用场景有哪些?
205 0
|
7月前
|
存储 算法 Java
细探究,Java对象创建过程和访问的奥秘
细探究,Java对象创建过程和访问的奥秘
90 0
|
安全 Java 测试技术
带你深入学习“反射”技术
带你深入学习“反射”技术
145 0
|
编译器 C++
C++多态的基本概念与原理刨析
多态分为两类 • 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 • 动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别: • 静态多态的函数地址早绑定 - 编译阶段确定函数地址 • 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 下面通过案例进行讲解多态
104 0
C++多态的基本概念与原理刨析
|
应用服务中间件
反射知识梳理
反射知识梳理
128 0
|
缓存 Oracle IDE
深入分析Java反射(八)-优化反射调用性能
Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行Debug。
391 0