Недавно назначенная переменная теряет свое значение в следующей строке - PullRequest
1 голос
/ 25 ноября 2011

Я создаю портлет Liferay в Liferay Developer Studio (то есть Eclipse) и обнаружил очень, очень странное поведение.

В одном JSP каждый раз, когда задается какая-то конкретная переменная, ее переменная имеет свое значениеизменено на null в следующей строке.Это так странно, что я почувствовал, что должен сделать скриншот из этого видео - и это в этом видео на YouTube .

Класс AnoterFieldComparator расширяет OrderByComparator от Liferay, как виднониже.Эта проблема только что случилась и с OrderByComparator подклассами, хотя это не имеет смысла для меня.

public class AnoterFieldComparator extends OrderByComparator {
    @Override
    public int compare(Object o1, Object o2) {
        Example example1 = (Example)o1;
        Example example2 = (Example)o2; 
        return Integer.parseInt(""+(example1.getAnotherField() - example2.getAnotherField()));
    }
}

(Да, есть опечатка. Это был просто эксперимент :))

Проект можно увидеть здесь и здесь .Я знаю, что вопрос не так хорошо написан, но я очень удивлен, обычно только новички говорят об этом типе поведения, и большую часть времени они ошибаются.

1 Ответ

1 голос
/ 25 ноября 2011

Что такое метод toString AnoterFieldComparator (или его суперкласса)?

Столбец значения в приведенном вами скриншоте не обнуляется, только в поле внизу, которое является строковым представлением этого класса, в конце видео вы все еще можете видеть справа от компаратора класс и идентификатор объекта. Таким образом, переменная не является нулевой, просто метод to string возвращает либо null (0x0), либо строку "null".

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