0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用LocalDate和LocalDateTime

Android編程精選 ? 來源:Android編程精選 ? 作者:Android編程精選 ? 2022-07-04 11:34 ? 次閱讀

史蒂夫.喬布斯說,”復(fù)雜的終極境界是簡單“,同樣的優(yōu)雅的代碼一定是精簡明了,可讀性好。

使用LocalDate和LocalDateTime

LocalDate精確到日期,LocalDateTime精確到時分秒。優(yōu)化前14行代碼


	
  1. try {

  2. SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");

  3. SimpleDateFormat sdfMins = new SimpleDateFormat("yyyy-MM-dd HHss");

  4. Date now = new Date();

  5. String today = sdfDay.format(now);

  6. String waterStart = today + " 0300";

  7. String waterEnd = today + " 0400";

  8. Date waterStartTime = sdfMins.parse(waterStart);

  9. Date waterEndTime = sdfMins.parse(waterEnd);

  10. } catch (ParseException pe) {

  11. return XX;

  12. }

優(yōu)化后3行代碼


	
  1. LocalDateTime now = LocalDateTime.now();

  2. LocalDateTime waterStart = LocalDateTime.of(now.getYear(), now.getMonth(),now.getDayOfMonth(),3,0);

  3. LocalDateTime waterEndTime =LocalDateTime.of(now.getYear(), now.getMonth(),now.getDayOfMonth(),4,0);

默認值使用Optional

優(yōu)化前五行


	
  1. if (null == status) {

  2. param.put("status", new ArrayList<String>());

  3. } else {

  4. param.put("status", status);

  5. }

優(yōu)化后一行,使用JDK8的Optional


	
  1. Optional.ofNullable(status).orElse(new ArrayList<String>());

如果是字符串可以用


	
  1. StringUtils.defaultIfEmpty(status,"")

字符串累加

字符串只要不在for循環(huán)里累加,可以直接用+號,因為編譯成字節(jié)碼后會變成StringBuilder,如果在for循環(huán)里面用+號會生成多個StringBuilder,所以在for循環(huán)里累加最好在循環(huán)外創(chuàng)建StringBuilder。優(yōu)化前五行


	
  1. StringBuffer sblog = new StringBuffer();

  2. sblog.append("waterDriven|sellerId=");

  3. sblog.append(request.getSellerTaobaoId());

  4. sblog.append("|result=");

  5. sblog.append(isSuccess);

優(yōu)化后一行


	
  1. String sblog="waterDriven|sellerId="+request.getSellerTaobaoId()+"|result="+isSuccess;

以上場景用逗號和等號連接數(shù)據(jù),使用GUAVA的Joiner更精簡,可讀性更好


	
  1. String sblog=Joiner.on("|").withKeyValueSeparator("=").join(ImmutableMap.of("sellerId", request.getSellerTaobaoId(), "result", isSuccess))

LIST TO MAP

優(yōu)化前4行


	
  1. Map<String, String> AssetsMetaIdMap = Maps.newHashMap();

  2. for (AssetsInfoBO assetsInfoBO : request.getAssetsCollectionList()) {

  3. AssetsMetaIdMap.put(assetsInfoBO.getAssetMetadataId(), assetsInfoBO.getAssetMetadataId());

  4. }

優(yōu)化后1行


	
  1. Map<String, String> AssetsMetaIdMap = request.getAssetsCollectionList().stream().collect(Collectors.toMap(Hosting::getAssetMetadataId, Hosting::getAssetMetadataId));

如果key重復(fù)會拋出異常


	
  1. Exception in thread "main" java.lang.IllegalStateException: Duplicate key 80000

減少不需要的判斷

優(yōu)化前5行


	
  1. String requestId = null;

  2. if (null != request.getExtData()) {

  3. requestId = request.getExtDataValue(REQUEST_ID_KEY);

  4. }

  5. return requestId;

優(yōu)化后1行


	
  1. return request.getExtDataValue(REQUEST_ID_KEY);

去掉else

優(yōu)化前5行


	
  1. if (null != result && StringUtils.isNotBlank(no)) {

  2. return no;

  3. } else {

  4. throw new RuntimeException("XX");

  5. }

優(yōu)化后4行


	
  1. if (null != result && StringUtils.isNotBlank(no)) {

  2. return no;

  3. }

  4. throw new RuntimeException("XX");

不要返回布爾

優(yōu)化前5行


	
  1. if ("true".equalsIgnoreCase(value.toString())) {

  2. invoke = true;

  3. } else {

  4. invoke = false;

  5. }

優(yōu)化后一行


	
  1. invoke = "true".equalsIgnoreCase(value.toString());

使用級聯(lián)

優(yōu)化前5行


	
  1. ParamBO paramBO = new ParamBO();

  2. paramBO.setId(1);

  3. paramBO.setName(”ifeve“);

  4. paramBO.setOld(7);

優(yōu)化后1行


	
  1. new ParamBO().withId(1).withName("ifeve").withOld(7);

-End-

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4695

    瀏覽量

    68079
  • LOCA
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    7150

原文標(biāo)題:幾個代碼瘦身優(yōu)化的案例

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    高通發(fā)布Snapdragon Elite平臺,推動汽車智能化

    近日,高通正式推出了專為汽車應(yīng)用而設(shè)計的Snapdragon Elite平臺。該平臺搭載了高通最新的Oryon中央處理器,旨在為下一代汽車提供更智能、更高效的體驗。 作為高通數(shù)字底盤(Snapdragon Digital Chassis)的重要組成部分,Snapdragon Elite平臺進一步豐富了高通在汽車領(lǐng)域的技術(shù)布局。通過該平臺,高通將為用戶帶來更加先進、更加豐富的汽車智能化解決方案。 高通提供了兩種主要的平臺選擇:Snapdragon Cockpit Elite和Snapdragon Ride Elite。其中,Snapdragon Cockpit Elite專注
    的頭像 發(fā)表于 10-23 11:11 ?5次閱讀

    IAR支持旗芯微車規(guī)級MCU,助力汽車行業(yè)智能化發(fā)展

    在全球汽車電子產(chǎn)業(yè)迅猛發(fā)展的背景下,IAR與蘇州旗芯微半導(dǎo)體有限公司(簡稱“旗芯微”)攜手宣布了一項重大合作成果:IAR Embedded Workbench for Arm 9.60.2版本現(xiàn)已實現(xiàn)對旗芯微車規(guī)級MCU的全面支持,旨在為汽車行業(yè)打造更加高效、安全且智能的開發(fā)解決方案。
    的頭像 發(fā)表于 10-23 11:09 ?18次閱讀

    ChatGPT 高級語音模式擴展至歐盟多國

    近日,OpenAI 宣布了一個重要的更新,將其 ChatGPT 高級語音模式擴展到了歐盟、瑞士、冰島、挪威和列支敦士登等地區(qū)。這一功能最初在今年5月推出時,僅限于美國的 Plus 和 Team 用戶,隨后在上個月擴展到了英國用戶?,F(xiàn)在,歐盟等多地區(qū)的 ChatGPT Plus 和 Team 用戶也可以享受到這一便捷的功能。 ChatGPT 高級語音模式的一大亮點在于其快速的響應(yīng)時間。據(jù) OpenAI 介紹,該功能能夠在平均320毫秒的時間內(nèi)響應(yīng)音頻輸入,而實際響應(yīng)時間更是達到了232毫秒,這幾
    的頭像 發(fā)表于 10-23 11:08 ?15次閱讀

    基于唯捷創(chuàng)芯產(chǎn)品的FEM解決方案

    本文主要介紹Vanchip的兩款產(chǎn)品,VC5337+VC5788。
    的頭像 發(fā)表于 10-23 11:06 ?7次閱讀
    基于唯捷創(chuàng)芯產(chǎn)品的FEM解決方案

    變頻電機的控制原理是什么?主要應(yīng)用在哪些方面?

    一、變頻電機的控制原理 變頻電機的控制原理是通過改變電機的供電頻率和電壓,實現(xiàn)對電機轉(zhuǎn)速的精確控制。這種控制方式具有以下特點: 變壓變頻(VVVF)控制:變壓變頻控制是通過改變電機的供電電壓和頻率,實現(xiàn)對電機轉(zhuǎn)速的控制。這種控制方式可以實現(xiàn)電機的無級調(diào)速,具有較好的啟動性能和調(diào)速性能。 矢量控制:矢量控制是一種先進的電機控制技術(shù),通過對電機的磁通和轉(zhuǎn)矩進行獨立控制,實現(xiàn)對電機轉(zhuǎn)速的精確控制。矢量控制可以提高電
    的頭像 發(fā)表于 10-23 11:05 ?17次閱讀

    瑞薩電子推出RX261與RX260微控制器(MCU)產(chǎn)品群

    全球領(lǐng)先的半導(dǎo)體解決方案提供商瑞薩電子(股票代碼:TSE:6723)今日正式揭曉了其最新的RX261與RX260微控制器(MCU)系列。這兩款64MHz的MCU以卓越的能效比脫穎而出,工作模式下功耗低至69微安/兆赫茲,待機模式下更是僅為1微安。此外,它們還助力設(shè)計師輕松打造具備防水功能的電容式觸控傳感器,并融入了強大的安全性能。憑借出色的性能與功能的完美結(jié)合,RX261/RX260系列廣泛應(yīng)用于家用電器、樓宇及工廠自動化領(lǐng)域,同時也適用于智能鎖、電動自行車及便攜式熱敏打印機等多種場景。
    的頭像 發(fā)表于 10-23 11:02 ?25次閱讀

    減速電機主要應(yīng)用類型有哪些?簡單分析

    減速電機是一種將電能轉(zhuǎn)換為機械能的設(shè)備,通過內(nèi)置的減速機構(gòu)來降低電動機的轉(zhuǎn)速,同時增加輸出扭矩。這種設(shè)備廣泛應(yīng)用于各種工業(yè)和自動化領(lǐng)域,以滿足不同的動力需求。 齒輪減速電機 應(yīng)用領(lǐng)域 :廣泛應(yīng)用于輸送帶、升降機、攪拌器等需要精確控制速度和扭矩的場合。 特點 :結(jié)構(gòu)緊湊,安裝方便,維護簡單,能夠提供多種減速比。 行星減速電機 應(yīng)用領(lǐng)域 :常用于機器人、機床、自動化設(shè)備等需要高扭矩和高效率的場合。 特點 :體積小,重
    的頭像 發(fā)表于 10-23 11:02 ?21次閱讀

    菲律賓計劃借助臺積電力量,加速芯片制造業(yè)發(fā)展

     10月22日,彭博社報道指出,菲律賓正積極尋求與中國臺灣地區(qū)的芯片行業(yè)領(lǐng)軍企業(yè)合作,旨在推動其半導(dǎo)體產(chǎn)業(yè)的發(fā)展,并努力追趕在該領(lǐng)域已成為重要供應(yīng)商的周邊國家。
    的頭像 發(fā)表于 10-23 11:01 ?27次閱讀

    CrewAI 獲1800萬美元融資,推出Enterprise新功能

    近日,自動化AI代理領(lǐng)域的初創(chuàng)公司CrewAI宣布成功獲得總計1800萬美元的融資。本輪融資由Boldstart Ventures牽頭的初創(chuàng)輪融資和Insight Partners主導(dǎo)的A輪融資共同組成。 伴隨著融資的成功,CrewAI推出了其Enterprise平臺的新功能,包括自我迭代、性能評估、持久記憶以及多種代理協(xié)作結(jié)構(gòu)等。這些新功能的加入,使得CrewAI Enterprise能夠更好地滿足大型組織對于復(fù)雜AI代理設(shè)計、測試和大規(guī)模部署的需求。 CrewAI的創(chuàng)始人兼CEO Moura表示:“通過CrewAI Enterprise的推出,我
    的頭像 發(fā)表于 10-23 11:00 ?29次閱讀

    MCS對應(yīng)的速率如何計算

    大概之前的有關(guān)MCS對應(yīng)速率的內(nèi)容,都是直接給出了表格,并沒有仔細分析該如何計算,今天我們就以11ac為例,看看對應(yīng)不同的MCS,速率是如何算出來的。注意都是理論速率。
    的頭像 發(fā)表于 10-23 11:00 ?28次閱讀
    MCS對應(yīng)的速率如何計算

    什么是磁阻同步電動機?它有什么特點?

    磁阻同步電動機(Reluctance Synchronous Motor)是一種同步電動機,它利用磁阻的變化來產(chǎn)生轉(zhuǎn)矩。這種電動機在結(jié)構(gòu)和工作原理上與永磁同步電動機和感應(yīng)電動機有所不同。磁阻同步電動機具有較高的效率、良好的動態(tài)性能和較低的制造成本等優(yōu)點,因此在工業(yè)自動化、電動汽車等領(lǐng)域得到了廣泛的應(yīng)用。 磁阻同步電動機的特點主要包括以下幾個方面: 結(jié)構(gòu)簡單:磁阻同步電動機的結(jié)構(gòu)相對簡單,主要由定子、轉(zhuǎn)子和軸承等部件組成。定子通常采用三相繞
    的頭像 發(fā)表于 10-23 10:57 ?24次閱讀

    高頻電感的作用和頻率響應(yīng)

    電感是由導(dǎo)線繞成的線圈,用于增加穿過線圈間的磁鏈數(shù),最終增加該線圈的自感系數(shù)。
    的頭像 發(fā)表于 10-23 10:56 ?30次閱讀
    高頻電感的作用和頻率響應(yīng)

    單相異步電動機是什么?具有什么特征?

    單相異步電動機是一種常見的交流電動機,它主要應(yīng)用于家庭和工業(yè)領(lǐng)域,如空調(diào)、洗衣機、風(fēng)扇等家用電器以及一些小型機械設(shè)備。單相異步電動機的主要特點是結(jié)構(gòu)簡單、成本低廉、維護方便、運行可靠,但與三相異步電動機相比,其啟動性能和運行效率略低。 一、工作原理 單相異步電動機的工作原理基于電磁感應(yīng)和電磁力的作用。當(dāng)單相交流電源通過電動機的定子繞組時,會產(chǎn)生一個旋轉(zhuǎn)磁場。這個旋轉(zhuǎn)磁場與轉(zhuǎn)子繞組中的電流相互作用,產(chǎn)生
    的頭像 發(fā)表于 10-23 10:54 ?22次閱讀

    交流異步電動機基本原理是什么?簡單分析

    交流異步電動機,也稱為感應(yīng)電動機,是一種利用交流電驅(qū)動的電動機。它的基本原理是利用電磁感應(yīng)和電磁力來產(chǎn)生旋轉(zhuǎn)力矩,從而實現(xiàn)機械能的轉(zhuǎn)換。以下是對交流異步電動機基本原理的簡單分析: 電磁感應(yīng)原理:交流異步電動機的工作原理基于法拉第電磁感應(yīng)定律。當(dāng)交流電流通過電動機的定子繞組時,會在定子和轉(zhuǎn)子之間產(chǎn)生旋轉(zhuǎn)磁場。這個旋轉(zhuǎn)磁場會在線圈中產(chǎn)生感應(yīng)電動勢,進而產(chǎn)生感應(yīng)電流。 電磁力:當(dāng)轉(zhuǎn)子中的感應(yīng)電流遇到旋轉(zhuǎn)磁場
    的頭像 發(fā)表于 10-23 10:53 ?26次閱讀

    車規(guī)級的定義與標(biāo)準(zhǔn)

    隨著國內(nèi)汽車零部件制造水平不斷提升以及新能源汽車的發(fā)展,汽車零部件行業(yè)也得到了快速發(fā)展。2021年我國汽車零部件制造企業(yè)收入規(guī)模為40668億元,同比增長12%,2022年約為41953億元,2023年進一步增長至44086億元。這么多零部件的企業(yè),需要更多的車規(guī)級的器件。
    的頭像 發(fā)表于 10-23 10:52 ?29次閱讀
    車規(guī)級的定義與標(biāo)準(zhǔn)