這篇文章給大家分享的是有關(guān)JAVA Collections.sort方法在SSH三大框架中使用中的問題有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)灤州,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
最近,一同學(xué)在開發(fā)中遇到了SSH三大框架中使用到了Collections.sort方法。然而,他開發(fā)環(huán)境中的JDK
是1.7.0_64,網(wǎng)站部署的JDK版本是1.7.0_80,他通過開發(fā)環(huán)境中產(chǎn)生的.class直接去更新網(wǎng)站部署環(huán)境中的.class
文件后,程序相關(guān)功能模塊執(zhí)行到Collections.sort不繼續(xù)執(zhí)行也不報錯,而前臺ajax因此取不到數(shù)據(jù)。
類似的遠(yuǎn)程如下:
public String analysisBillByIllName(){ if(!"".equals(queryItem)){ Listipflist = ipfs.findByIllName(queryItem); List bvlist = new ArrayList (); if(ipflist.size()!=0){ int sumfreq = 0; for(IllnessPrescriptionFrequency inst:ipflist){ if(!"".equals(inst.getId().getBillIds())){ String[] bids = inst.getId().getBillIds().split("\\$"); for(int i=0;i >>>>>>>>>bvlist for2 ipflist:"+bvlist.size()); final int sumRatio = sumfreq; Collections.sort(bvlist,new Comparator (){//list sort public int compare(BillView bv1,BillView bv2){ if(bv1.getFrequency() >>>>>>>>>bvlist Collections:"+bvlist.size()); for(BillView bv:bvlist){ Bill qb = bills.findById(bv.getBillId()); bv.setBillName(qb.getBillName()); float divd = bv.getFrequency()/sumRatio; bv.setUseageRatio(divd); bv.setIllName(queryItem); } flag="data"; jsonArray = JSONArray.fromObject(bvlist); System.out.println(jsonArray.toString()); return SUCCESS; }else{ flag="none"; return SUCCESS; } }else{ return ERROR; } }
如上程序通過AJAX異步訪問,在開發(fā)環(huán)境中能正常執(zhí)行;但是使用低版本的JDK編譯后的.class文件直接去替換高版本下
的同名.class文件類,程序執(zhí)行到:
System.out.println(">>>>>>>>>>bvlist for2 ipflist:"+bvlist.size());
而下邊的方法不執(zhí)行也不報錯:
Collections.sort(bvlist,new Comparator(){//list sort public int compare(BillView bv1,BillView bv2){ if(bv1.getFrequency() 程序無法執(zhí)行Collections.sort,不能執(zhí)行到函數(shù)返回語句,AJAX異步訪問獲取不到數(shù)據(jù),導(dǎo)致前臺報錯獲取數(shù)據(jù)失敗。
在問題排查過程中,經(jīng)歷了如下過程:
1、開發(fā)環(huán)境是windows,網(wǎng)站部署環(huán)境是centos6.8,前后重新編譯了網(wǎng)站代碼,并且重新部署了centos上的網(wǎng)站,
問題還是不執(zhí)行Collections.sort;
2、懷疑是阿里云環(huán)境安全的限制,關(guān)閉了主機(jī)防火墻,但是Collections.sort方法還是不執(zhí)行也不報錯;
3、單獨編輯測試Collections.sort的java類分別在windows和centos環(huán)境下編譯執(zhí)行,發(fā)現(xiàn)Collections.sort在windows和centos上均可以執(zhí)行,測試程序如下:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class BillView{ private Integer billId; private String billName; private String illName; private int frequency; private float useageRatio; public Integer getBillId() { return billId; } public void setBillId(Integer billId) { this.billId = billId; } public String getBillName() { return billName; } public void setBillName(String billName) { this.billName = billName; } public String getIllName() { return illName; } public void setIllName(String illName) { this.illName = illName; } public int getFrequency() { return frequency; } public void setFrequency(int frequency) { this.frequency = frequency; } public float getUseageRatio() { return useageRatio; } public void setUseageRatio(float useageRatio) { this.useageRatio = useageRatio; } public BillView() { } public BillView(Integer billId, String billName, String illName, int frequency, float useageRatio) { super(); this.billId = billId; this.billName = billName; this.illName = illName; this.frequency = frequency; this.useageRatio = useageRatio; } } public class Test { public static void main(String[] args){ Listbvlist = new ArrayList (); BillView bv1 = new BillView(1, "蘋果", null, 1, 0); BillView bv2 = new BillView(2, "香蕉", null, 4, 0); BillView bv3 = new BillView(3, "橘子", null, 2, 0); BillView bv4 = new BillView(4, "梨", null, 9, 0); bvlist.add(bv1); bvlist.add(bv2); bvlist.add(bv3); bvlist.add(bv4); Collections.sort(bvlist,new Comparator (){//list sort public int compare(BillView bv1,BillView bv2){ if(bv1.getFrequency() "+bvlist.size()); for(BillView bv:bvlist){ System.out.println(" "+bv.getBillName()+" "+bv.getFrequency()); } } } 4、查看windows和centos環(huán)境下的JDK版本,發(fā)現(xiàn)兩邊環(huán)境JDK版本不一致,windows環(huán)境下jdk版本是:1.7.0_64,而
centos環(huán)境下JDK版本是1.7.0_80;將windows環(huán)境下JDK版本更新到1.7.0_80,并指定開發(fā)工具myeclipse的Java編譯使用
JDK1.7.0_80版本,重新編譯網(wǎng)站源碼,在centos上發(fā)布網(wǎng)站,發(fā)現(xiàn)如下程序順利執(zhí)行:
Collections.sort(bvlist,new Comparator(){//list sort public int compare(BillView bv1,BillView bv2){ if(bv1.getFrequency() 感謝各位的閱讀!關(guān)于“JAVA Collections.sort方法在SSH三大框架中使用中的問題有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)站題目:JAVACollections.sort方法在SSH三大框架中使用中的問題有哪些
網(wǎng)站鏈接:http://weahome.cn/article/iejppp.html