我想在 Eclipse 中定义并触发一些自定义的Java编译错误。 基本上我希望某些方法中的某些系统调用会触发编译错误。
在this discussion中提出了一个基于 Annotaion 的解决方案,但它不适用于我的情况,因为我无法预测何时会发生联合错误。我想要的是,当开发人员进行系统调用时,将触发编译错误。
答案 0 :(得分:1)
不完全符合您的要求,但请考虑使用自定义Checkstyle定义。以下是checkstyle文档中的示例,该示例将对System.out.println
的调用标记为无效:
<module name="Regexp">
<!-- . matches any character, so we need to escape it and use \. to match dots. -->
<property name="format" value="System\.out\.println"/>
<property name="illegalPattern" value="true"/>
</module>
答案 1 :(得分:0)
实现类似功能的唯一方法是编写Eclipse插件,在构建期间分析代码。但这样做的细节实际上超出了StackOverflow问题的范围。
答案 2 :(得分:0)
您需要创建Builder
实现并将其注册到Java Project。
你可以start here。
答案 3 :(得分:0)
如果你想阻止开发人员使用java.lang.System,一个很好的技巧是在你的项目中创建一个自定义类 java.lang.System ,所以每次调用任何方法java.lang.System(真正的)会出现编译问题。
如果您使用maven,您还可以在单独的maven项目中创建该类,其范围不会与实际应用程序一起打包。