Java 是否可以使用它读取变量值';s注释类

Java 是否可以使用它读取变量值';s注释类,java,reflection,Java,Reflection,下面的代码是我的注释类 import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Documented @Tar

下面的代码是我的注释类

   import java.lang.annotation.Documented;
   import java.lang.annotation.ElementType;
   import java.lang.annotation.Retention;
   import java.lang.annotation.RetentionPolicy;
   import java.lang.annotation.Target;
   @Documented
   @Target(ElementType.FIELD)
   @Retention(RetentionPolicy.RUNTIME)
   public @interface Search {
     public String name();
     public String value();
   }
下面的课是普通课

  public class MyClass{

  @Search(name = "first_name", value = "srivas")
  private String first_name;
  @Search(name = "last_name", value = "sam")
  private String last_name;

  public String getFirst_name() {
    return first_name;
  }
  public void setFirst_name(String customername) {
    this.customername = customername;
  }
  public String getLast_name() {
    return last_name;
  }
  public void setLast_name(String last_name) {
    this.last_name= last_name;
  }
 }
这里我将读取变量值

public class MyService{

public void getvalues(){
    MyClass myvals = new MyClass();
    myvals.setFirst_name("Vikram");
    myvals.setLast_name("Kumar");
    for(Field f: MyClass.class.getDeclaredFields()){
                 MyClass searchfields = f.getAnnotation(MyClass.class);

            if (searchfields != null)
            System.out.println(searchfields.name()+" = "+searchfields .value());

            }
        }
    }
我得到以下输出 first_name=srivas, 姓氏=山姆

但我期待着

first_name=vikram, 姓氏=库马尔

如果可能的话,请帮我阅读

而且,做你想做的事情真的没有意义

注释用于在编译时执行操作,它不是变量数据的存储


您可以使用反射来查找注释并找出它与哪个变量相关,但是如果您可以使用getter来获取变量的值而不需要所有这些麻烦,那就需要付出很大的努力。

我不明白,您的意思是
myvals.getFirst_name()
?f.getAnnotation(MyClass.class);gve您是否返回批注而不是字段您永远不会访问字段
first\u name
本身,
name()
value()
访问批注的两个字段。谢谢,@Lino先生,我正试着用annotation classPro阅读提示:一般来说,人们在回答问题时投入的精力是成比例的,因为他们看到提问时投入的精力是成比例的。所以请后退一步,试着写得恰当。