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

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

开发者学堂课程【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”)

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

 

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

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

相关文章
|
8月前
|
安全 Java 编译器
深入探讨Java反射:解析机制与应用场景
反射是Java的一种强大而灵活的特性,它允许程序在运行时获取类的信息、构造对象、调用方法和访问字段。在Java中,每个类都有一个对应的Class对象,通过这个对象,我们可以了解类的结构和行为。
198 1
 深入探讨Java反射:解析机制与应用场景
|
8月前
|
存储 C++
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
|
2月前
|
安全 Java 数据库连接
如何理解反射
反射之所以被称为框架的灵魂,主要是因为它赋予了我们在运行时分析类以及执行类中方法的能力。通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。
74 5
|
5月前
|
Java 开发者 C++
|
6月前
|
安全 Java
打破常规!JAVA反射技术让你“动态”编程
【7月更文挑战第1天】Java反射技术是动态编程的利器,它揭示了类的内部信息,允许运行时操作对象、调用方法和创建实例。动态加载类、调用方法和创建对象是其常见应用场景,但需注意反射带来的性能损失、安全风险和代码可读性下降。在平衡灵活性与效率时谨慎使用。
53 0
|
7月前
|
Java 开发者 C++
Java面向对象的终极挑战:抽象类与接口的深度解析!
【6月更文挑战第17天】在Java OOP中,抽象类和接口助力代码复用与扩展。抽象类不可实例化,提供通用框架,适合继承;接口包含纯抽象方法,支持多态与松耦合。选择抽象类用于继承已有方法和状态,接口则适用于不相关类共享行为。Java 8后接口能含默认方法,增加设计灵活性。抽象类与接口常结合使用,以实现最佳设计,如`Shape`抽象类实现`Drawable`和`Selectable`接口,展现两者协同优势。理解和熟练运用这对概念是提升代码质量的关键。
49 0
|
8月前
|
Java 编译器 C#
【C++ 继承的多样性】C++ 多继承与虚拟继承:探究核心原理与应用实践
【C++ 继承的多样性】C++ 多继承与虚拟继承:探究核心原理与应用实践
217 1
|
8月前
|
设计模式 算法
|
8月前
|
设计模式
二十三种设计模式全面解析-深入探讨状态模式的高级应用技术:释放对象行为的无限可能
二十三种设计模式全面解析-深入探讨状态模式的高级应用技术:释放对象行为的无限可能
|
安全 Java 测试技术
带你深入学习“反射”技术
带你深入学习“反射”技术
148 0