Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android反射无法进行注释_Java_Android_Annotations - Fatal编程技术网

Java Android反射无法进行注释

Java Android反射无法进行注释,java,android,annotations,Java,Android,Annotations,难以获取有关字段批注的信息 这是我的注解: public @interface DbField {} 这是我的班级: public class AccountData extends Data { @DbField public String uidnext; 这是我的倒影 Field f = AccountData.class.getField("uidnext"); Log.d("fcrow", String.format("%s:%b", f.getName(),

难以获取有关字段批注的信息

这是我的注解:

public @interface DbField {}
这是我的班级:

public class AccountData extends Data {

    @DbField
    public String uidnext;
这是我的倒影

Field f = AccountData.class.getField("uidnext");
Log.d("fcrow", String.format("%s:%b", f.getName(),
                f.getAnnotation(DbField.class) != null));
输出为:

D/fcrow: uidnext:false

我对联机找到的大多数指向此代码工作的点感到困惑。

修改注释声明以包含运行时保留策略:

@Retention(RetentionPolicy.RUNTIME)
public @interface DbField {}
如果不这样做,您将获得默认的保留策略
CLASS
。其文件规定:

注释将由编译器记录在类文件中,但不需要在运行时由VM保留。这是默认行为


我已经读过这篇文章,但仍然对我的代码为什么不起作用感到困惑,这篇文章中是否有一个特定的部分针对这个问题跳出来问你?