如何解决有没有办法配置允许哪些不安全的 Groovy 操作?
Groovy 允许在 Java 编译时(以及运行时)进行的各种非类型安全操作。
例如,允许将列表分配给数组:
Integer[] a = [1,3]
将 int 分配给字符串也是如此。
String s = 3
并且您可以使用错误数量的参数调用方法,它会编译但在运行时会失败。
您可以使用注解@CompileStatic 禁止所有这些,但是有没有办法禁止某些不安全的操作同时允许其他操作?
谢谢!
解决方法
正如您正确提到的,应该使用 @CompileStatic
/ @TypeChecked
来允许类似 java 的强类型,而 @CompileDynamic
/ @TypeChecked( SKIP )
允许弱类型。>
这里的主要问题是如何以及在何处应用这些。您可以将注解放在类或方法级别。
您可以将整个类(即所有方法)定义为类型安全的,但对特定的类进行例外处理:
@CompileStatic
class TypeSafe {
doSafe(){}
doSafe2(){}
@CompileDynamic
doUnsafe(){}
}
你也可以反过来。默认情况下让所有类的方法都不安全,并声明 1 是类型安全的:
class TypeSafe {
doUnsafeSafe(){}
doUnsafeSafe2(){}
@CompileStatic
doUnsafe(){}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。