63 Star 428 Fork 156

huifer/Code-Analysis

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
docs
beans
core
AttributeAccessor
Lifecycle
ParameterNameDiscoverer
images
Readme.md
Spring-AspectJAdviceParameterNameDiscoverer-未完成.md
Spring-AspectJAnnotationParameterNameDiscoverer.md
Spring-DefaultParameterNameDiscoverer.md
Spring-KotlinReflectionParameterNameDiscoverer.md
Spring-LocalVariableTableParameterNameDiscoverer.md
Spring-ParameterNameDiscoverer.md
Spring-PrioritizedParameterNameDiscoverer.md
Spring-StandardReflectionParameterNameDiscoverer.md
convert
io
registry
env
other
utils
release
.gitattributes
.gitignore
CHANGELOG.MD
LICENSE
Notice
README.md
_coverpage.md
index.html
summary.md
todo.md
克隆/下载
Spring-StandardReflectionParameterNameDiscoverer.md 1.49 KB
一键复制 编辑 原始数据 按行查看 历史
huifer 提交于 5年前 . feat: 0.0.9

Spring StandardReflectionParameterNameDiscoverer

  • 类全路径: org.springframework.core.StandardReflectionParameterNameDiscoverer
  • StandardReflectionParameterNameDiscovererParameterNameDiscoverer 实现类. 其中实现方式都是使用 JDK 的标准反射进行处理

处理方式很简单.

首先看一个类图来对 Method 和 Constructor 的关系

Constructor.png

在了解上面内容后我们再看方法

@Override
@Nullable
public String[] getParameterNames(Method method) {
   // 获取参数名称
   return getParameterNames(method.getParameters());
}

@Override
@Nullable
public String[] getParameterNames(Constructor<?> ctor) {
   // 获取参数名称
   return getParameterNames(ctor.getParameters());
}

在这里 MethodConstructor 都有getParameters 方法来获取参数列表. 而参数列表中有名字. 因此他们都调用了getParameterNames

getParameterNames

  • 方法签名: org.springframework.core.StandardReflectionParameterNameDiscoverer#getParameterNames(java.lang.reflect.Parameter[])
  • 循环设置参数名称
@Nullable
private String[] getParameterNames(Parameter[] parameters) {
   String[] parameterNames = new String[parameters.length];
   for (int i = 0; i < parameters.length; i++) {
      Parameter param = parameters[i];
      if (!param.isNamePresent()) {
         return null;
      }
      parameterNames[i] = param.getName();
   }
   return parameterNames;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/pychfarm_admin/code-analysis.git
git@gitee.com:pychfarm_admin/code-analysis.git
pychfarm_admin
code-analysis
Code-Analysis
v0.0.15

搜索帮助