java - 最近分配的变量在下一行中丢失其值

标签 java eclipse jsp liferay-6

我正在 Liferay Developer Studio(即 Eclipse)中创建一个 Liferay portlet,并发现了一个非常非常奇怪的行为。

在一个 JSP 中,每次设置某个特定变量时,该变量的值都会在下一行中更改为 null。这太奇怪了,我觉得我应该把它录下来 - 它是 in this YouTube video .

AnoterFieldComparator 类从 Liferay 扩展了 OrderByComparator,如下所示。这个问题也发生在 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()));
    }
}

(是的,有一个拼写错误。这只是一个实验:))

项目可见herehere 。我知道这个问题写得不太好,但我很惊讶,通常只有新手才会谈论这种行为,而且大多数时候他们都是错的。

最佳答案

AnoterFieldComparator(或其父类(super class))的 toString 方法是什么?

屏幕截图中的 value 列不会变为 null,只是下面的框是此类的字符串表示形式,在视频末尾,您仍然可以在比较器的右侧看到类和对象 id,因此该变量不是 null,只是 to string 方法返回 null (0x0) 或字符串“null”。

关于java - 最近分配的变量在下一行中丢失其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263195/

相关文章:

jsp - 如何使用JSTL "if"标签而不获取 "..attribute test does not accept any expressions"

java - 是什么导致 Java(冰雹序列)在我的程序中崩溃

java - Java新手,已经出错了

Java正则表达式替换第一个冒号之前的所有句点

java - 无法访问浏览器异常

eclipse - 如何在 Eclipse 中为 Laravel Blade 文件添加语法突出显示

java - 使用动态名称创建变量

jsp - 使用 scriplet 代码从 jsp 重定向

java - 一般图中最小成本+最大匹配的算法

java - 在构建路径中从 jre 引用 jar