- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在java中的@Retention注解的源代码中,@Retention是在其定义本身中使用的,这怎么可能。
连 RetentionPolicy 都设置在RUNTIME,那么它怎么可能在它还没有准备好运行之前就被执行呢。
package java.lang.annotation;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
/**
* Returns the retention policy.
* @return the retention policy
*/
RetentionPolicy value();
}
最佳答案
这不是真正的递归。它不过是一个前向引用,分别指向“稍后”之后的类接口(interface)。并且 Java 通常允许使用前向引用。对此有各种限制(请参阅 Java 语言规范,例如 8.3.2.2 部分)- 但这些限制均不适用于此处。
除此之外:请记住这里没有特殊的编译步骤。编译器只是为 Retention 接口(interface)创建一个普通的类文件。但是然后:编译器很可能硬编码了解此接口(interface)。如果使用 RetentionPolicy.SOURCE,编译器甚至会从已编译的类文件中排除注释。这意味着编译器必须进行某种检查(以确定是否注释了某些内容并且启用了 SOURCE 策略)。
换句话说:编译器可能包含类似的东西
if (x instaceof Retention) ...
并且此代码存在于编译器中。以上在编译一些其他注解时工作正常,但在编译 Retention 接口(interface)本身时它也工作。
但关键信息是:没有递归,只有前向引用。使用稍后定义的内容。
关于java - @Retention 注解的递归使用,怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47456209/
以下两种保留配置之间有什么区别? offsets.retention.minutes log.retention.minutes 我不知道它有什么不同或相互联系。据我了解,一旦偏移量被删除,日志中的记
在文档中 log.cleaner.delete.retention.ms: How long are delete records retained? log.retention.ms: The nu
我正在考虑为我的应用使用 Firebase Analytics。我很好奇: 保留的标准是什么?保留是否跟踪具有我必须发送的唯一 ID 或唯一设备的用户帐户? 如果用户从多个设备登录到我的应用程序,我将
是否可以有一个配置,其中给定名称或类型的所有注释自动RetentionPolicy.RUNTIME ? 我遇到了一个问题,我需要在运行时使用反射来搜索某些注释。但这些是分散在应用程序各处的常见注释,例
在java中的@Retention注解的源代码中,@Retention是在其定义本身中使用的,这怎么可能。 连 RetentionPolicy 都设置在RUNTIME,那么它怎么可能在它还没有准备好运
Java 8 类型注释 (JSR 308) 允许类型检查器执行静态代码分析。例如,The Checker Framework可以通过 @NonNull 注释检查可能的nullness。 各个项目定义了
根据Kotlin language spec ,有三种类型的注释保留: Source retention (accessible by source-processing tools); Binary
有没有办法在配置文件中指定 storage.tsdb.retention 标志而不是在命令行上传递?我针对不同的情况有不同的配置文件,如果我也可以在配置文件中指定 storage.tsdb.reten
这段代码中这些java.lang.annotation导入的目的是什么?为什么需要它们来定义 MyAnnotation? import java.lang.annotation.Documented;
我想在 Prometheus 2.12 中尝试 storage.tsdb.retention.size 的特性。 我的 prometheus 保留配置是 90 天或 2GiB。我的预期是当 prome
Firebase 通过 Firebase 远程配置提供拆分测试功能,但无法过滤具有用户属性(实际上具有任何属性)的同类群组部分中的保留。 为了寻求这个问题的解决方案,我正在寻找 BigQuery,因为
我正在使用 Insights 来分析我的用户保留率,如 described on this guide它非常适合按天/周或长达 3 个月来衡量保留率。 但是我如何获得 6 个月的保留数? 最佳答案 确
我想要一个只接受 2 个值的函数,比如说一个和两个。我可以为它使用枚举,但对于 Android,使用常量 (@IntRef) 被认为更好。 所以我这样做了: @Retention(RetentionP
我被要求为我的 prometheus 的 storage.tsdb.retention.time 提供最小值。我给它作为 1d。我们能不能给值(value)低于这个。我的意思是我们可以为这个标志指定以
我试图了解 Java 1.5 的保留策略。但没有得到清晰的图片。 作为per JavaDoc , CLASS - 注释将被记录在类文件中编译器,但不需要在运行时由 VM 保留。 RUNTIME - 注
我正在尝试使用 Java 在 Kafka 中的压缩主题上实现一个最小的工作示例。我的压缩运行良好,但是当我按照 kafka 文档中的描述使用键和空值编写消息时,看不到删除发生。 使用的库版本:kafk
的主要作用之一log.retention.byte 参数是避免 kafka 磁盘已满,或者换句话说,清除数据日志以避免 kafka 磁盘已满 根据以下链接: https://docs.hortonwo
所以我试图为创建一个别名 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface ApiRe
我正在使用 TestNG 测试业务服务,在 Spring Boot 应用程序中进行模拟单元测试。 应用程序是多模块spring boot项目。我正在为业务模块编写单元测试。 我在pom中添加了以下依赖
我有最近7天涌入的数据。我应用了保留政策,突然所有数据被删除。我有大量的Influx执行个体。 CREATE RETENTION POLICY stats_30_day ON server_stats
我是一名优秀的程序员,十分优秀!