1

悲しいことに、それは単に過負荷ではありません...

アプリケーションを railo 3.3 から 4.1 にアップグレードしようとしています

私は基盤となる Java メソッドを頻繁に使用していますが、ほとんどの場合、これは問題ではありません。Java Comparator オブジェクトを使用して並べ替えている配列があります。

a.sort(
    createObject(
        "java", 
        "AlphanumComparator", 
        "/model/java/AlphanumComparator.jar"
    )
);

3.3で問題なく動作します。しかし、4.0 の新しいメンバー関数でarray.sortは、 と同じように実行される新しいメソッドが追加されていarraySort()ます。

次のエラーが表示されます。

invalid sort type [AlphanumComparator@someid], sort types are [text, textNoCase, numeric]

getClass()のJavaメソッドがまだそこにあることを示していますが、それを呼び出すことができないようです...

4

1 に答える 1

2

あなたが 3.3 で呼び出していたメソッドは、汎用 (標準) Java クラスではなく、.sort()Railo のクラスの実装の詳細にすぎなかったと思います。railo.runtime.type.ArrayImplそのため、とにかく実装が変更される可能性があるというリスクにさらされます-そしてそれはあります.

java.util.Collectionsコードを少し変更すると、静的sort()メソッドを使用できるようになります。

var Collections = createObject( "java", "java.util.Collections" );
Collections.sort( a, createObject( "java",
                                   "AlphanumComparator",
                                   "/model/java/AlphanumComparator.jar" ) );

文字列のCFML配列とデフォルトを使用してRailo 4.0.4.001でこれをテストしたので、実装でもjava.text.Collator機能すると思います。java.util.Comparator

于 2013-06-28T17:58:15.687 に答える