標籤:ima static 顯示 介面 邏輯 log pre result alt
項目中通常有些需求為需要將某個sObject的資料列表按照某種規則排序顯示到前台頁面上,但是list上面的sort遠遠滿足不了複雜的功能,此種情況需要自訂比較兩個object大小的方法,所以需要建立Compare相關的類實現Comparable介面。
需求:實現Goods__c列表排序,GoodsBrand__c為華為的按照價格升序排序,GoodsBrand__c為聯想的按照價格降序排列。
1 public without sharing class ComparedGoods implements Comparable{ 2 private Goods__c goods{get;set;} 3 4 private static final String GOODS_BRAND_HUAWEI = ‘華為‘; 5 6 private static final String GOODS_BRAND_LIANXIANG = ‘聯想‘; 7 8 public ComparedGoods(Goods__c obj) { 9 goods = obj;10 }11 12 public Integer compareTo(Object objectToCompareTo) {13 Goods__c comparedGoods = (Goods__c)objectToCompareTo;14 Integer comparedResult = 0;15 if(comparedGoods.GoodsBrand__c == GOODS_BRAND_HUAWEI) {16 if(goods.GoodsPrice__c > comparedGoods.GoodsPrice__c) {17 comparedResult = 1;18 } else if(goods.GoodsPrice__c < comparedGoods.GoodsPrice__c) {19 comparedResult = -1;20 }21 } else if(comparedGoods.GoodsBrand__c == GOODS_BRAND_LIANXIANG) {22 if(goods.GoodsPrice__c > comparedGoods.GoodsPrice__c) {23 comparedResult = -1;24 } else if(goods.GoodsPrice__c == comparedGoods.GoodsPrice__c) {25 comparedResult = 0;26 } 27 else if(goods.GoodsPrice__c < comparedGoods.GoodsPrice__c) {28 comparedResult = 1;29 }30 }31 return comparedResult;32 }33 }
用法:
總結:針對object需要比較大小的時候,可以實現Comparable介面,在其compareTo方法中實現比較的邏輯即可。此篇有錯誤的地方歡迎指正,有問題歡迎留言。
salesforce 零基礎學習(六十三)Comparable實現Object列表資料的自訂排序