我想在我创建的共享gwt类中调用验证方法来存储验证逻辑(对于用户输入的文本字段)
suggestBox.addKeyUpHandler( new KeyUpHandler() {
public void onKeyUp(KeyUpEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
String boxText = suggestBox.getText();
if (new FieldVerifier().validUserName(boxText)) { //inner class used to instanciate the FieldVerifier class where validUserName(String ..) lives
现在我可以使用正确实例化的FieldVerifier类(而不是上面的内部类)来实现这一点 - 或者实际上,也许可以使它成为抽象的。但我怀疑我错过了什么(即必须是一种优雅的方式)。
看了谷歌代码搜索,但没有遇到任何特别有用的东西..
答案 0 :(得分:1)
我不确定我是否得到了它,但请尝试:
FieldVerifier.this.validUserName(boxText);
答案 1 :(得分:0)
我可以使用正确实例化的FieldVerifier类(而不是上面的内部类)来做到这一点
您对FieldVerifier的使用不是内部类。它确实“适当地实现了”。 KeyUpHandler是一个匿名的内联类的例子。
答案 2 :(得分:0)
如果您将validUserName()
方法设为FieldVerifier
静态,则可以直接调用FieldVerifier.validUerName()
,而无需实例化FieldVerifier对象。但是,如果它是一个相当小的类,那么创建一个新对象的开销可能很小。
答案 3 :(得分:0)
如果我理解你要做什么,我会将validUserName()
作为静态方法。它似乎不需要或改变任何状态;你只需传入一些内容,在其上运行一些验证逻辑,然后返回一个布尔值。这种情况是你想开始使用静态的。