Java 在命令提示符和 Eclipse 中执行应用程序的区别

Java difference to execute app in Command Prompt and Eclipse

我有一个 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

我的想法是我有一个包含两个元素的列表,这个列表的顺序如下:

第一个元素(0)他的属性isPrimary = False

第二元素(1)他的属性是Primary = True

然后执行 Collections.sort(list) 订单应该是下一个

第一个元素(0)他的属性是Primary = True

Second Element(1)他的属性isPrimary = False

为什么不一样?

这只是评论而不是回答,因为我现在没有足够的声誉:) .

你可能需要粘贴"ErpInvoice.Concepto.ConceptosHGH"的代码。这个class应该实现"java.lang.Comparable"的接口。只需检查名为 CompareTo(T o).

的方法