【发布时间】:2013-06-25 21:32:05
【问题描述】:
遗憾的是,它不仅仅是超载...
我正在尝试将我的应用程序从 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 方法仍然存在,但我似乎无法调用它...
【问题讨论】:
-
尝试使用
a.toArray()获取Java 数组,然后调用.sort(Comparator)? -
根本找不到排序方法
No matching Method/Function for [Ljava.lang.Object;.sort(AlphanumComparator) found -
哦,抱歉,我以为这是您所追求的内部 Java 方法,但事实并非如此。解决此问题的最佳方法可能是在Railo mailing list 上提问。
-
顺便说一句,我将
getClass()转储到 CFML 数组上,签名似乎是void sort(java.lang.String, java.lang.String),这是arraySort()的成员版本,而不是您以前能够使用的Comparator版本调用Railo 3.3。请参阅下面的答案以获取解决方案。
标签: java coldfusion overloading railo