我在这里发现了一些类似的问题,但不完整的答案没有帮助,而且比澄清任何事情都产生了更多的混乱,所以我尝试给出一个更结构化的问题,并希望得到能够帮助更多用户的答案。
我的简化示例:我有一个带有两个不同构造函数的 Java 类
public class ObjectOfInterest {
public ObjectOfInterest(String string, Integer int) { ... }
public ObjectOfInterest(String string1, String string2) { ... }
...
}
我需要对这些构造函数的调用进行一些编译时验证。参数string2
必须是一些文字,我想根据内容将调用标记为警告(即,当它不是文字或文字格式不正确时发出警告)。
不幸的是,使用 Eclipse 进行 Java 验证的文档并不容易理解,有时已经过时,在我看来,大多数情况下它都是不完整的,并且似乎没有足够短的工作示例可以在教程中使用。
My goal:
第一步:我想要一个验证器,用警告标记两个参数版本的调用 - 只是为了从某个地方开始并了解基础知识。
到目前为止我发现了什么:
我见过的几个例子public class MyValidator implements IValidator, ISourceValidator
where IValidator
需要实现一个方法public void validate(IValidationContext arg0, IReporter arg1) throws ValidationException
并且似乎来自旧版本的验证框架(有时我发现只是带有注释的空方法useless), and ISourceValidator
需要实现一个方法public void validate(IRegion arg0, IValidationContext arg1, IReporter arg2)
- 这似乎是更新的版本。
然后你必须添加一些扩展点到一些plugin.xml
(我不太清楚这个plugin.xml在哪里)。
我在黑暗中刺伤的地方: 完全不清楚如何使用IRegion
, IValidationContext
, and IReporter
- 也许我走错了路,但我能得到什么?如何在验证中查找该构造函数的调用?
在第一步变得更加清晰之后,我会扩展这个问题。 Outlook,我想添加对构造函数的两个字符串版本进行快速修复的可能性,并以这种方式操作代码 - 但这至少提前了两个步骤,稍后会详细介绍。