jetbrains annotations 库 优雅的书写纯函数
- 通过该注解可以让你写代码的时候 更优雅的表明函数的语意
- 官方文档
- 这是一个注释库,对于写注释而言,有些时候书写表达式能表现的更为精简 通用,并且更富有语意性!
@Nls @NonNls
@Nls Integer code = -500; //批注指示带批注的代码元素是需要本地化的字符串
@NonNls Integer code = -500; //批注指示带批注的代码元素是用户不可见的字符串,它不需要本地化,并且不包含需要本地化的字符串。使用 对元素进行批注时,本地化工具将跳过此元素及其中的字符串。
@PropertyKey
- 注释指示方法参数接受必须是特定资源包中的有效属性键的参数。当不是捆绑包中属性键的字符串文本作为参数传递时,IntelliJ IDEA 会将其突出显示为错误。批注还用于在作为参数传递的字符串文本中提供完成。
@TestOnly
@TestOnly
public void test(){
System.out.println("i am test fun");
}
@Contract
- 该注解用于约束入参和出参,下图示例代表了入参必须为非null 并且出参也不能为null
@Contract(value = "!null -> !null", pure = false)
public static String top(String param) throws Exception {
unsafe();
if (Objects.equals("a", param)) return "b";
else {
throw new Exception("");
}
}
@ParametersAreNonnullByDefault
- 声明一个方法是有默认值的
- 在这种情况下ide 认为判断null 是没有意义的
- 并且如果调用时传递了null idea 会发出警告