Попробуйте это
$("tr.myRow td").on("input", "input[type='text']", function(){
alert("CONTENT: " + $(this).val());
});
Eclipse 3.5.2 (и, возможно, более ранние версии) уже предоставляет эту функцию. Если вы щелкните правой кнопкой мыши в редакторе, вы найдете его в разделе «Источник» -> «Создать toString ()» ...
. Чтобы ответить на ваш вопрос о том, является ли автоматическое создание toString ()
плохой практикой, я считаю, что это не так. Если сгенерированный код очень похож на код, который вы написали бы сами, то зачем вообще его печатать?
В IntelliJ Idea вы можете нажать alt + insert, откроется всплывающее окно Generate; Теперь выберите поля и нажмите кнопку ОК; это все.
Дополнительная подсказка: в диалоговом окне «Генерировать toString» вы можете выбрать шаблон, щелкнув раскрывающееся меню со списком шаблонов. Здесь вы можете выбрать StringBuffer, если вам нужно, или любой другой шаблон, как требуется. Играть с ним, чтобы привыкнуть. Мне нравится :)
Будьте внимательны при добавлении toString () в отношении аудитории сгенерированного текста. Некоторые платформы используют метод toString () для генерации видимого текста конечного пользователя (например, определенные веб-структуры), тогда как многие люди используют методы toString () для генерации информации отладки / разработчика. В любом случае, убедитесь, что у вас достаточно уникальности в реализации toString, чтобы удовлетворить ваши требования.
Реализация по умолчанию в JDK функции toString () генерирует информацию для разработчиков, поэтому обычно, по возможности, я рекомендую этот шаблон, но если вы работаете над проектом с другой идеей / ожиданием, вы можете запутаться ...
Лично мне нравится реализовывать метод toString для всех объектов, поскольку он помогает при отладке.
Я бы хотел изучить Apache Commons ToStringBuilder .
Вы можете реализовать простой метод toString с помощью отражения следующим образом:
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
Используя этот метод, вам не нужно будет обновлять метод toString, если / когда добавляются поля.
Чтобы добавить к ответам Стива и Дона (+1 для них):
Сделайте свой toString ()
метод прост, убедитесь, что он никогда не вызывает ожиданий (особенно помните о полях, которые могут быть нулевыми).
Если возможно, не вызывайте другие методы вашего класса. По крайней мере, убедитесь, что ваш метод toString ()
не изменяет ваш объект.
И помните о глупых исключительных циклах toString:
public class MyClass {
...
public String toString() {
// BAD PRACTICE 1: this can throw NPE - just use field1
return " field1=" + field1.toString()
+ " extraData=" + getExtraData();
// BAD PRACTICE 2: potential exception-toString loop
}
public MyExtraData getExtraData() {
try {
.... do something
} catch(Exception e) {
throw new RuntimeException("error getting extradata - " + this.toString(),e);
}
}
}
Если вы используете ломбок , у них есть аннотация @ToString , которая сгенерирует для вас toString.
Причина, по которой это намного лучше использовать вместо генерации toString, например, с помощью eclipse, заключается в том, что если вы позже добавите, удалите или измените атрибуты класса, вам также придется регенерировать toString. Если вы используете ломбок , вам не нужно этого делать.