Стиль кодирования Java - вызов метода внутри класса - PullRequest
1 голос
/ 11 марта 2010

Я хочу вызвать метод проверки внутри общего класса 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 (а не с внутренним классом, как указано выше) - или, возможно, сделать его абстрактным. но у меня есть подозрение, что я что-то упускаю (т.е. должен быть элегантным способом сделать это).

посмотрел поиск по коду гугл, но ничего особенно полезного не натолкнуло *

Ответы [ 4 ]

1 голос
/ 11 марта 2010

Я не уверен, что понял, но попробуйте:

FieldVerifier.this.validUserName(boxText);
0 голосов
/ 11 марта 2010

Если я понимаю, что вы пытаетесь сделать, я бы сделал validUserName() статическим методом. Кажется, он не требует и не изменяет состояние; вы просто передаете что-то, запускаете некоторую логику проверки, а затем возвращаете логическое значение. Это тот случай, когда вы хотите начать смотреть на использование статики.

0 голосов
/ 11 марта 2010

Если вы сделали validUserName() метод FieldVerifier статическим, то вы могли бы просто вызвать FieldVerifier.validUerName() напрямую, без необходимости создания экземпляра объекта FieldVerifier. Однако, если это довольно маленький класс, затраты на создание нового объекта, вероятно, будут минимальными.

0 голосов
/ 11 марта 2010

Я мог бы сделать это с помощью правильно созданного класса FieldVerifier (а не внутреннего класса, как указано выше)

Ваше использование FieldVerifier не является внутренним классом. Это действительно «правильно воплощено». KeyUpHandler - пример анонимного встроенного класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...