Spring getDeclaredField和注释

Spring getDeclaredField和注释,spring,reflection,annotations,spring-validator,Spring,Reflection,Annotations,Spring Validator,我正在使用springframework验证程序验证我的应用程序。目前,我正在将字段名作为硬编码字符串传递给验证器。这导致了很多问题,如果模型中的字段名发生更改,验证就会失败 我已经研究了使用getDeclaredField从模型中获取文件名的反射。但是,此方法返回该类的文件列表,如果需要获取特定字段,则必须传递正确的索引。例如,字段[8].getName()。因此,如果字段的位置发生变化,我将遇到一个问题 我想知道是否有其他更简单的方法可以将特定的字段名传递给拒绝值?自定义注释可以工作吗?像

我正在使用springframework验证程序验证我的应用程序。目前,我正在将字段名作为硬编码字符串传递给验证器。这导致了很多问题,如果模型中的字段名发生更改,验证就会失败

我已经研究了使用getDeclaredField从模型中获取文件名的反射。但是,此方法返回该类的文件列表,如果需要获取特定字段,则必须传递正确的索引。例如,
字段[8].getName()
。因此,如果字段的位置发生变化,我将遇到一个问题

我想知道是否有其他更简单的方法可以将特定的字段名传递给拒绝值?自定义注释可以工作吗?像

@firstName
私有字符串名

然后使用getDeclaredAnnotations获取我的字段名

我现在是这样做的

private String           firstName;
private String            lastName;

errors.rejectValue("lastName ", ValidationConstants.INVALID_NULL_OR_BLANK_CODE);
如果我使用反射

errors.rejectValue(fields[2].getName(), ValidationConstants.INVALID_NULL_OR_BLANK_CODE);

看看JSR303bean验证,它也由Spring支持,谢谢Ralph。我已经看过bean验证了。不幸的是,要使用它,我们需要对所有应用程序重新进行验证。我正在试图找到一种解决方案来替换硬编码字符串。我相信这是可能的:)看看JSR303bean验证,它也由Spring支持,谢谢Ralph。我已经看过bean验证了。不幸的是,要使用它,我们需要对所有应用程序重新进行验证。我正在试图找到一种解决方案来替换硬编码字符串。我相信这是可能的:)