1

Liferay Developer Studio (Eclipse) で Liferay ポートレットを作成していますが、非常に奇妙な動作を発見しました。

ある JSP では、特定の変数が設定されるたびに、その変数の値がnull次の行に変更されます。これは非常に奇妙なので、スクリーンキャストを作成する必要があると感じました - そしてそれはこの YouTube ビデオ にあります。

以下に示すように、クラスは Liferay からAnoterFieldComparator拡張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()));
    }
}

(はい、タイプミスがあります。単なる実験でした:))

プロジェクトはここここで見ることができます。質問がうまく書かれていないことは知っていますが、私はかなり驚いています。通常、この種の行動について話すのは初心者だけであり、ほとんどの場合、彼らは間違っています.

4

1 に答える 1

1

AnoteFieldComparator (またはそのスーパークラス) の toString メソッドとは何ですか?

画面キャストの値列は、このクラスの文字列表現である下のボックスだけで null になりません。ビデオの最後でも、コンパレーターの右側にクラスとオブジェクト ID が表示されるので、 variable が null ではなく、 to string メソッドが null (0x0) または文字列 "null" を返しただけです。

于 2011-11-24T23:23:24.027 に答える