gpt4 book ai didi

java - 如何在 OQL 中对字符串进行排序

转载 作者:行者123 更新时间:2023-11-30 02:43:30 25 4
gpt4 key购买 nike

我已经尝试过:

select sort(obj.displayName, 'lhs < rhs') from my.org.BusinessClass obj

select sort(obj.displayName, 'lhs.toString() < rhs.toString()') from my.org.BusinessClass obj

两者都给我字符数组结果,但它们都不是按字符串排序的。我认为它是按对象 ID 排序的。

我也尝试过:

select sort(obj.displayName, lhs < rhs) from my.org.BusinessClass obj 
select sort(obj.displayName, lhs.toString() < rhs.toString()) from my.org.BusinessClass obj

但是这些会导致错误,因为排序第二个参数被假定为字符串表达式。

VisualVM 文档中的示例仅适用于数字:Analyzing a Heap Dump Using Object Query Language (OQL)

该类的结构如下:

package my.org;
public class BusinessClass {
private String displayName;
// rest of class omitted for brevity
}

最佳答案

您可以使用以下查询对 OQL 中的字符串进行排序:

select sort(heap.objects('java.lang.String'), 'lhs.toString().localeCompare(rhs.toString())')

在您的情况下,请使用此 OQL 查询按显示名称对业务对象进行排序:

select sort(heap.objects('my.org.BusinessClass'), 'lhs.displayName.toString().localeCompare(rhs.displayName.toString())')

如果您想在输出中查看业务对象和实际显示名称,请使用此 OQL 查询:

select map(sort(heap.objects('my.org.BusinessClass'), 'lhs.displayName.toString().localeCompare(rhs.displayName.toString())'), 'toHtml(it)+" "+it.displayName.toString()')

关于java - 如何在 OQL 中对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com