苍穹外卖Day3

getDeclaredMethod和getMethod的区别

getDeclaredMethod 和 getMethod 是 Java 反射 API 中用于获取类中方法信息的两个重要方法,但它们在功能和行为上有一些区别。

1.获取方法范围:

  • getDeclaredMethod:此方法用于获取类本身声明的所有方法,包括公共的、私有的、受保护的以及默认(包)访问级别的方法。但它不包括从父类或接口中继承的方法。
  • getMethod:此方法用于获取类的所有公共方法,包括类本身声明的公共方法以及从父类或接口中继承的公共方法。

2.异常处理:

  • 如果使用 getDeclaredMethod 尝试获取一个不存在的方法,它会抛出 NoSuchMethodException 异常。
  • 如果使用 getMethod 尝试获取一个不存在的方法(无论是类本身声明的还是继承的),它同样会抛出 NoSuchMethodException 异常。

3.参数类型:

  • 两个方法都需要提供方法名和参数类型的 Class 对象作为参数。这是为了确定要获取哪个具体的方法,因为在 Java 中方法名可以重载(即,可以有多个同名但参数不同的方法)。
  • 如果提供的参数类型与类中的任何方法都不匹配,两个方法都会抛出 NoSuchMethodException 异常。

4.使用场景:

  • 如果你只需要获取类本身声明的所有方法,而不关心它们是否是公共的,或者你是否需要访问从父类或接口中继承的方法,那么应该使用 getDeclaredMethod。
  • 如果你需要获取类的所有公共方法,包括从父类或接口中继承的方法,那么应该使用 getMethod。

方法签名对象和方法之间是什么关系

方法签名(Method Signature)是方法的声明部分,它主要包括方法的名称、参数列表和返回类型。这个签名是用来标识和区分不同方法的关键信息,决定了方法的唯一性。

方法签名与方法之间的关系可以理解为:

  • 方法签名是方法的标识符:它包含了足够的信息来唯一确定一个方法。在同一个类中,不能有两个具有相同签名的方法,即使它们的返回类型不同也不行。
  • 方法签名决定了方法的外部行为和属性:通过方法签名,我们可以知道这个方法接受什么样的参数,以及它返回什么样的值。这对于理解和使用该方法至关重要。
  • 方法签名与方法的重载(Overloading)有关:方法的重载允许在同一个类中定义多个方法,它们的方法名相同,但参数列表不同。这时,方法签名中的参数列表就是区分这些重载方法的关键。

JoinPoint joinPoint是什么

oinPoint是面向切面编程(AOP)中的一个重要概念,表示在程序执行过程中的特定位置或事件 。它代表了应用程序执行过程中可以被拦截的特定点,如方法的调用、方法的执行前后、异常抛出等。通过拦截这些JoinPoint,AOP框架可以插入额外的逻辑,实现横切关注点的功能。

在Spring AOP中,JoinPoint通常与切面(Aspect)一起使用。切面是一种横切关注点,它包含了要在JoinPoint上执行的额外逻辑。通过在JoinPoint上定义切面,可以在程序执行过程中动态地插入切面逻辑,实现横切关注点的模块化和复用。

在Spring的AOP实现中,JoinPoint通常通过JoinPoint接口来访问。这个接口提供了许多有用的方法,如获取目标对象、方法签名、参数等信息。在切面方法中,可以通过JoinPoint参数来获取这些信息,并根据需要执行额外的逻辑。

需要注意的是,JoinPoint本身并不执行任何操作,它只是提供了一个接口来访问与当前JoinPoint相关的信息。实际的切面逻辑需要在切面方法中实现。

实现Serializable接口有什么意义

在Java中,Serializable接口是一个标记接口,它没有定义任何方法。当一个类实现了Serializable接口时,它表示该类的对象可以被写入到流(例如文件或网络连接),并且之后可以从流中恢复出来,这个过程被称为序列化(serialization)和反序列化(deserialization)。

相关推荐
九转成圣1 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
直奔標竿1 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
金銀銅鐵2 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
野生技术架构师3 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
小袁拒绝摆烂4 小时前
多表关联大平层转JSON树形结构
java·json
ja哇5 小时前
大厂面试高频八股
java·面试·职场和发展
yoyo_zzm5 小时前
Laravel6.x新特性全解析
java·spring boot·后端
Nick_zcy5 小时前
小说在线阅读网站和小说管理系统 · 功能全解析
java·后端·python·springboot·ruoyi
源码宝5 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理