java - 静态注释和非静态注释有什么区别?
问题描述
Java 的内部类可以是静态的或非静态的。非静态内部类与封闭类的实例相关联。
注解是一种 Java 接口,与任何其他类一样,它们可以在类中定义。同样,它们可以声明为静态或非静态。这两种选择有什么区别,它们在使用代码时的使用方式有什么区别,是否有任何场景可以使用其中一种?
例子:
public class AnnotationContainer {
public static @interface StaticAnnotation {}
public @interface NonstaticAnnotation {}
}
解决方案
完全没有区别。嵌套接口始终是静态的。
这在JLS Sec 8.5.1(针对类)中进行了描述:
成员接口是隐式静态的(第 9.1.1 节)。允许成员接口的声明冗余地指定静态修饰符。
和JLS Sec 9.5(用于接口):
接口中的成员类型声明是隐式公共和静态的。允许冗余指定这些修饰符中的一个或两个。
推荐阅读
- python - 将 3D numpy 数组转换为 2D 并返回
- adobe - 尝试在 Adobe PDF 中显示下拉菜单选择的导出值
- python - 如何为 VS Code 设置 lauch.json 以便我可以使用当前工作目录中的其他文件夹/文件?
- python - 神经网络输出的两个错误
- python - 使用 Gensim 提取主题
- python - 你能解释一下 callfun.counter 是局部变量还是全局变量????#如果local是什么范围呢?
- swift - 带有 CoreData 的 Siri 意图
- c# - 用 C# 编写程序,根据 Id (txtBxNumber),它将更新或在文本文件和富文本框中创建新记录
- matrix - 如何在 DolphinDB 中有效地基于向量生成矩阵?
- azure-cosmosdb - Cosmos db查询成本和性能取决于同一分区中的项目数?