Java 如何使用反射获取关联字段的值

Java 如何使用反射获取关联字段的值,java,reflection,Java,Reflection,我正在实现一个自定义约束验证注释@validation,以验证annotatedField。我需要知道someField的值,以满足验证逻辑 class A { private String someField; @validation private String annotatedField; } 验证程序实现ConstraintValidator{ @凌驾 公共void初始化(验证约束旋转){ } @凌驾 公共布尔值有效(字符串注释字段、约束验证数据或上

我正在实现一个自定义约束验证注释
@validation
,以验证
annotatedField
。我需要知道
someField
的值,以满足验证逻辑

class A {

     private String someField;

     @validation
     private String annotatedField;
}
验证程序实现ConstraintValidator{
@凌驾
公共void初始化(验证约束旋转){
}
@凌驾
公共布尔值有效(字符串注释字段、约束验证数据或上下文上下文){
if(StringUtils.isBlank(annotatedField)){
返回true;
}
String someField;//在给定带注释的字段时获取一些someField值
}
}
有没有一种方法可以通过反射来实现这一点?

建议使用类级约束注释来解决此问题。


建议使用类级约束注释来解决此问题。

给定一个对象,可以反射地确定字段的值。关于如何做到这一点,现有的资源很多。或者你的问题是关于别的什么?是的,使用反射很容易知道
someField
的值;到目前为止,您尝试了什么,出了什么问题?例如,您最好使用前面提到的类级约束来解决此问题。@tddiaz类级约束恐怕不是一个简单的解决方案或解决方法,而是由
javax.validation
design提供的解决方案。当验证器目标是属性时,框架中没有允许您访问拥有属性的对象的功能。另请参见。请注意,根据Java惯例,您确实应该将
验证
重命名为
验证
。给定一个对象,您可以反射地确定字段的值。关于如何做到这一点,现有的资源很多。或者你的问题是关于别的什么?是的,使用反射很容易知道
someField
的值;到目前为止,您尝试了什么,出了什么问题?例如,您最好使用前面提到的类级约束来解决此问题。@tddiaz类级约束恐怕不是一个简单的解决方案或解决方法,而是由
javax.validation
design提供的解决方案。当验证器目标是属性时,框架中没有允许您访问拥有属性的对象的功能。另请参见。请注意,根据Java惯例,您应该将
验证
重命名为
验证
Validator implements ConstraintValidator<validation, String>{

      @Override
      public void initialize(validation constraintAnnotation) {

      }

      @Override
      public boolean isValid(String annotatedField, ConstraintValidatorContext context) {

           if (StringUtils.isBlank(annotatedField)) {
                return true;
           }

           String someField; // get some someField value given the annotatedField

      }
}