我有一个java控制台应用程序,其应用程序在Eclipse和命令提示符下运行时显示不同。
我已经检测到我的业务逻辑存在差异,这是:
在Eclipse中:
List<ErpInvoice.Concepto.ConceptosHGH> lsTempConcepto = new ArrayList<ErpInvoice.Concepto.ConceptosHGH>(tConcepto.getConcepto().size());
lsTempConcepto.addAll(tConcepto.getConcepto());
System.out.println(lsTempConcepto.get(0).isPrimary()); //FALSE
Collections.sort(lsTempConcepto);
System.out.println(lsTempConcepto.get(0).isPrimary()); //TRUE
在命令提示符中:
List<ErpInvoice.Concepto.ConceptosHGH> lsTempConcepto = new ArrayList<ErpInvoice.Concepto.ConceptosHGH>(tConcepto.getConcepto().size());
lsTempConcepto.addAll(tConcepto.getConcepto());
System.out.println(lsTempConcepto.get(0).isPrimary()); //FALSE
Collections.sort(lsTempConcepto);
System.out.println(lsTempConcepto.get(0).isPrimary()); //FALSE
我的想法是我有一个包含两个元素的列表,这个列表按照下一个顺序排列:
First Element(0)他的属性isPrimary = False
和
第二元素(1)他的属性是Mr.Primary = True
在执行Collections.sort(list)之后,订单应该是下一个
First Element(0)他的属性isPrimary = True
和
第二元素(1)他的属性isPrimary = False
为什么有区别?
答案 0 :(得分:1)
这只是评论而不是回答,因为我现在没有足够的声誉:)。
你可能需要粘贴“ErpInvoice.Concepto.ConceptosHGH”的代码。该类应该实现“java.lang.Comparable”的接口。只需检查名为CompareTo(T o)的方法。