在Java 8中,我们可以使用注释标记数组的单独维度(请参阅JLS 8中的第10.2节).例如,
int @a[] a;
int @a[] @b[] a;
void someMethod(int @a[] @b... y) {}
Run Code Online (Sandbox Code Playgroud)
然后我们可以用Java Reflection解析这些声明来实现一些特定的逻辑.
您是否知道此功能在实际Java框架或Java库中的任何实际应用?
根据JLS的"8.1.1.1",我们有:
如果满足以下任一条件,则类C具有抽象方法:
•C的任何成员方法(第8.2节) - 无论是声明的还是继承的 - 都是抽象的.
•任何C的超类都有一个使用包访问声明的抽象方法,并且没有方法可以覆盖C中的抽象方法或来自C的超类
有趣的是,为什么我们在这里有第二种选择.特别是,为什么我们有完全"包访问".那么"公共"还是"受保护"的方法呢?
有趣的是,两者之间有什么区别
POM中的report-> configuration元素和build-> configuration元素。
它是用POM参考编写的:
细微的区别是,报告元素下的插件配置可以用作构建插件配置,尽管事实并非相反(构建插件配置不会影响报告插件)。
参见http://maven.apache.org/pom.html#Reporting
您能否举一个例子说明行为差异?
根据 UML 规范,我们可以通过<<Create>>或<<Instantiate>>构造型来表示两个类之间的依赖关系。
你知道这些刻板印象之间有什么区别吗?
它是用 UML 规范 2.5(第 22.3 章标准构造型)编写的:
为了<<Create>>
使用依赖性表示客户端分类器创建供应商分类器的实例
为了<<Instantiate>>
分类器之间的使用依赖性表明客户端上的操作创建供应商的实例
根据 UML 规范,我们可以通过 << Responsibility >> 构造型来表示依赖关系(第 22.3 章标准构造型)
以下是规范中对它的定义:
一个要素与其他要素关系中的合同或义务。
您能举一个使用这种刻板印象的例子吗?