色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

使用LocalDate和LocalDateTime

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

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

使用LocalDate和LocalDateTime

LocalDate精確到日期,LocalDateTime精確到時分秒。優化前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. }

優化后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

優化前五行


	
  1. if (null == status) {

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

  3. } else {

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

  5. }

優化后一行,使用JDK8的Optional


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

如果是字符串可以用


	
  1. StringUtils.defaultIfEmpty(status,"")

字符串累加

字符串只要不在for循環里累加,可以直接用+號,因為編譯成字節碼后會變成StringBuilder,如果在for循環里面用+號會生成多個StringBuilder,所以在for循環里累加最好在循環外創建StringBuilder。優化前五行


	
  1. StringBuffer sblog = new StringBuffer();

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

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

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

  5. sblog.append(isSuccess);

優化后一行


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

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


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

LIST TO MAP

優化前4行


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

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

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

  4. }

優化后1行


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

如果key重復會拋出異常


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

減少不需要的判斷

優化前5行


	
  1. String requestId = null;

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

  3. requestId = request.getExtDataValue(REQUEST_ID_KEY);

  4. }

  5. return requestId;

優化后1行


	
  1. return request.getExtDataValue(REQUEST_ID_KEY);

去掉else

優化前5行


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

  2. return no;

  3. } else {

  4. throw new RuntimeException("XX");

  5. }

優化后4行


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

  2. return no;

  3. }

  4. throw new RuntimeException("XX");

不要返回布爾

優化前5行


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

  2. invoke = true;

  3. } else {

  4. invoke = false;

  5. }

優化后一行


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

使用級聯

優化前5行


	
  1. ParamBO paramBO = new ParamBO();

  2. paramBO.setId(1);

  3. paramBO.setName(”ifeve“);

  4. paramBO.setOld(7);

優化后1行


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

-End-

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4823

    瀏覽量

    68901
  • LOCA
    +關注

    關注

    0

    文章

    7

    瀏覽量

    7190

原文標題:幾個代碼瘦身優化的案例

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

收藏 人收藏

    評論

    相關推薦

    嵌入式機器學習的應用特性與軟件開發環境

    作者:DigiKey Editor 在許多嵌入式系統中,必須采用嵌入式機器學習(Embedded Machine Learning)技術,這是指將機器學習模型部署在資源受限的設備(如微控制器、物聯網設備和智能傳感器)上,這些設備通常具有有限的計算能力、存儲空間和功耗。本文將您介紹嵌入式機器學習的應用特性,以及常見的機器學習開發軟件與開發環境。 嵌入式機器學習的應用特性與優勢 由于嵌入式設備通常要求極低的功耗,以延長電池壽命,這對于邊緣設備特別重要,且嵌入
    的頭像 發表于 01-25 17:05 ?10次閱讀
    嵌入式機器學習的應用特性與軟件開發環境

    使用先進的光電設備簡化接近檢測的部署

    作者:Bill Schweber 投稿人:DigiKey 北美編輯 2024-11-07 光電 (PE) 傳感器因其高效、耐用和清晰的工作原理,已廣泛用于生產、工業和商業系統中的非接觸式接近檢測。典型應用包括檢測高速生產線上的瓶子或罐子、查看運輸箱內是否有包裹、檢查門是否打開或關閉,或人的存在檢測。 PE 接近傳感器可以設計成不同的光學檢測模式,基本的逆反射方法是一種典型排列方式。盡管 PE 傳感器的工作原理很簡單,但在設置時可能需要大量時間進行試錯,以便根據應
    的頭像 發表于 01-25 17:02 ?11次閱讀
    使用先進的光電設備簡化接近檢測的部署

    什么是 TRIAC-三極管交流電?

    作者: DWARAKAN RAMANATHAN 什么是雙向晶閘管? TRIAC可以擴展為交流三極管。 TRIAC 用于控制交流電源,因為一旦開啟,TRIAC 就可以雙向導電,這與 MOSFET 或 IGBT 等其他晶體管不同。 TRIAC 是一種三端子半導體開關器件,包括主端子 1、主端子 2 和柵極端子。它們可以在柵極信號(正和負)的情況下導電。 TRIAC 是一種簡單的開關器件,可以在交流柵極信號上工作,與其他晶體管不同,因為 TRIAC 是通過組合兩個晶體管并連接其柵極端子而制成的。看看下圖就可以
    的頭像 發表于 01-25 16:57 ?12次閱讀
    什么是 TRIAC-三極管交流電?

    使用基于 USB 的數據采集系統簡化機電試驗

    作者:Art Pini 投稿人:DigiKey 北美編輯 2024-11-08 機電系統將電機、壓縮機、泵、傳感器、執行器和控制電子裝置等設備的電氣和機械組件組合在一起,廣泛用于制造、航空航天、汽車、醫療和機器人等領域。這些設備必須進行電氣和機械試驗和監控,才能確保正常運行。 為了獲得準確可靠的數據,所使用的必要設備必須與受試設備和試驗方法或程序兼容。試驗設備必須能處理多個模擬和數字輸入/輸出 (I/O) 通道,以對這些設備進行測量和控制,同時還要
    的頭像 發表于 01-25 16:57 ?11次閱讀
    使用基于 USB 的數據采集系統簡化機電試驗

    低通和高通濾波器的基礎知識

    作者:Aiden Warne 低通和高通濾波器簡介 低通和高通濾波器廣泛應用于電氣工程領域。例如,這些低通和高通濾波器可用于音頻處理、圖像處理、通信系統,有時還可以用于生物醫學信號處理。這些過濾器的作用正如其名稱所示。它們可以濾除高頻并讓低頻通過,也可以做相反的事情,濾除低頻并讓高頻通過。在這篇博客中,我將找到我正在使用的組件的給定高通和低通濾波器電路的波形。構建電路后,我將比較頻率信號的波形與電路元件的波形,看看它
    的頭像 發表于 01-25 16:55 ?11次閱讀
    低通和高通濾波器的基礎知識

    了解非通用 USB 技術

    設計電子產品 USB 功能的工程指南 作者: Shawn Wasserman 任何 20 世紀 90 年代見過(或設計過)消費電子產品的工程師都知道,沒有標準數據和電源連接的年代是多么痛苦。在這個“前”通用串行總線 (USB) 時代,你的抽屜里不得不裝滿各種形狀和尺寸的電纜。 USB-C 插座連接器。(圖片:DigiKey、Amphenol ICC) 通用串行總線 (USB) 稱呼中使用“通用”一詞可能會讓人覺得名不副實,畢竟可用選擇還是有那么多。但在 USB 誕生之前,每家公司和每種型號都有專有的
    的頭像 發表于 01-25 16:53 ?11次閱讀
    了解非通用 USB 技術

    為什么 Chromecast、Airplay 和藍牙不能和睦相處?

    作者: Shawn Wasserman 有助于產品說同一種語言的硬件和軟件 當工程師設計最新、最優的消費類電子設備時,兼容性就成了一個重要的話題,盡管這個話題很詭譎。[如果您讀過我以前的 DigiKey 博客] ,就會知道我是向后兼容的支持者,也是格式戰的批評者。不過我也明白,關于生態系統的工程討論往往歸結為預算、技術、硬件、物流、編程、知識產權和規劃。以 Chromecast、Airplay、藍牙和 Wi-Fi 為代表的無線通信就是很好的例子。 兼容 802.11 a/b/g/n/ac、藍牙
    的頭像 發表于 01-25 16:53 ?11次閱讀
    為什么 Chromecast、Airplay 和藍牙不能和睦相處?

    如何在惡劣環境中使用雷達進行車輛探測并避免碰撞

    作者:Jeff Shepard 投稿人:DigiKey 北美編輯 2024-11-12 在物流、制造、采礦、運輸、農業和其他行業中,運動監測和位置傳感器可用于避免碰撞、確保安全并提高生產率。這些傳感器可安裝在車輛上,也可以放置于關鍵固定位置。 傳感器必須能夠根據特定的應用需求進行配置,并具有多功能感測能力,包括基于距離、角度位置和速度的物體檢測。在繁忙或復雜的環境中,需要有同時探測多個目標的能力。 對于像裝卸月臺和叉車速度控制這類應用,采用不受
    的頭像 發表于 01-25 16:51 ?12次閱讀
    如何在惡劣環境中使用雷達進行車輛探測并避免碰撞

    如何選擇并整合多維安全系統來保護工人免受協作機器人傷害

    作者:Jeff Shepard 投稿人:DigiKey 北美編輯 2024-11-13 在工廠和物流設施中部署協作機器人、自主移動機器人 (AMR) 和自動導引車 (AGV) 時,安全至關重要。這是一個復雜、多維的系統, 需要根據國際標準化組織 (ISO) 13849、國際電工委員會 (IEC) 62061 和 IEC 61800-5-2 標準對機器移動進行監測和控制,而這些標準為控制系統 (SRP/CS) 安全相關部件的設計和整合原則提供了安全要求和指導。 要確保協作機器人、AMR、AGV 和類似設備的安全運行,通常需要建立一個分層的安
    的頭像 發表于 01-25 16:49 ?12次閱讀
    如何選擇并整合多維安全系統來保護工人免受協作機器人傷害

    利用隔離放大器應對電動汽車中精確電壓檢測的挑戰

    作者:Kenton Williston 投稿人:DigiKey 北美編輯 純電動汽車 (EV) 和混合動力電動汽車 (HEV) 的設計者需要滿足對更高性能、更快充電速度和更高效率的需求。在有助于滿足這些需求的許多電子功能中,用于實現最佳功率控制的電壓精確檢測功能就是其中之一。 然而,汽車應用尤其具有挑戰性。盡管存在極端溫度和需要適當隔離的高電壓,但電力電子設備或器件仍必須可靠地運行數十年。這些應用的電壓檢測電路必須具有高帶寬、小誤差、小漂移以及高共模瞬
    的頭像 發表于 01-25 16:47 ?13次閱讀
    利用隔離放大器應對電動汽車中精確電壓檢測的挑戰

    智能電機控制裝置如何最大限度地提高恢復能力和正常運行時間

    作者:Jeff Shepard 投稿人:DigiKey 北美編輯 在下一代工業 4.0 制造、金屬與基礎材料加工、礦物提煉與采礦以及像飲用水和污水處理廠之類關鍵基礎設施中,都需要能夠最大限度地提高機器恢復能力和正常運行時間的智能電機控制裝置。 這些應用中的電機控制裝置必須能夠控制并保護 75 馬力 (HP) 至 700 馬力的電機。為實現彈性運行,需要對機器進行全方位的保護,包括過載保護、接地故障保護和相位不平衡保護等。 同時還應包括觸點磨損自診斷和線圈過
    的頭像 發表于 01-25 16:40 ?43次閱讀
    智能電機控制裝置如何最大限度地提高恢復能力和正常運行時間

    最優醫用 DC/DC 轉換器的選擇和運用

    作者:Steven Keeping 投稿人:DigiKey 北美編輯 設計一個使用交流電或電池供電的電源非常復雜。設計人員必須開發出一種解決方案,既能在不同負載下提供穩定的電壓和電流,又能高效運行,以最大限度降低功耗。而且當電源用于醫療產品時,由于電磁兼容性 (EMC)、與病人電氣接觸的嚴格安全要求以及電磁干擾 (EMI) 保護等原因,設計會變得更加復雜。 對于從頭開始開發醫療電源的設計人員來說,要滿足這些要求可謂是費錢又費時。商用模塊化 DC/DC 轉換器
    的頭像 發表于 01-25 16:36 ?30次閱讀
    最優醫用 DC/DC 轉換器的選擇和運用

    了解 RC 電源系統的基礎知識

    作者: Don Johanneck 簡介 無線電控制 (RC) 板載電源系統在過去是非常基本的系統,其組件只包括一個接收器和一些由鎳鎘 (NiCad) 電池供電的伺服機構。然后,隨著電機的引入和其他電力需求的增加,RC 系統發生了很大變化。本篇博客將解釋現代 RC 電源系統中使用的術語和組件及其常見配置方式。 接收器 RC 接收器 (RX) 有兩個作用。首先,解析來自發射器的信號,并將數據導向正確的通道。其次是提供電源軌,為各種伺服機構或使用伺服通道的其他外圍設備
    的頭像 發表于 01-25 15:49 ?23次閱讀
    了解 RC 電源系統的基礎知識

    傳感器讓人工智能感知這個世界

    2024-12-10 人工智能(AI)和傳感器的結合在多個領域有廣泛應用和迅速的發展,特別是在自動化、物聯網(IoT)、醫療、智能城市以及工業4.0等領域。傳感器的功能是收集環境中的物理數據,例如溫度、壓力、光線、聲音、加速度等,而人工智能則用來分析和處理這些數據,從而做出智能決策或自動反應。 此外,Edge AI結合傳感器的應用技術正快速發展,推動多個領域的創新與進步。像是智能監測與預測維護應用、智能城市中的邊緣計算、自動駕駛與ADA
    的頭像 發表于 01-25 15:46 ?36次閱讀

    使用額定電流為 75 A 的 D-sub 連接器可保持電源的完整性和靈活性

    作者:Art Pini 投稿人:DigiKey 北美編輯 包括電動汽車 (EV) 以及工業和電信系統在內的各種應用對電子產品的電源要求在不斷提高,所有這些應用都需要經久耐用、性能可靠的連接器。在配電方面尤其如此。設計人員需要的大功率連接器不僅能保持大功率完整性,還能在位置數量、觸點配置和端接方面具有靈活性。 D-sub 連接器可能是電子產品中最常用的多針連接器,可滿足電源系統的許多要求。這種連接器具有各種配置,可適合數以千計的應用。隨著功率
    的頭像 發表于 01-25 15:41 ?32次閱讀
    使用額定電流為 75 A 的 D-sub 連接器可保持電源的完整性和靈活性
    主站蜘蛛池模板: 国产午夜电影在线观看不卡 | 女人的选择hd | 亚洲视频免费观看 | 欧美激情一区二区三区四区 | 免费观看99热只有精品 | 狠狠干福利视频 | 中文字幕亚洲乱码熟女在线萌芽 | 国精产品一区二区三区 | 亚洲午夜久久久久中文字幕 | 国产视频精品在线偷拍 | 国产黄片毛片 | 久久精品国产首叶 | 色一伦一情一区二区三区 | 啊…嗯啊好深男男高h文总受 | 一本到高清视频在线观看三区 | 日韩精品一卡二卡三卡四卡2021 | 久久国产精品免费A片蜜芽 久久国产精品萌白酱免费 久久国产精品麻豆AV影视 | 99在线观看视频 | 中文字幕不卡免费高清视频 | 人人妻免费线 | 99久在线国内在线播放免费观看 | 国产99视频在线观看 | 无人区在线日本高清免费 | 野花日本手机观看大全免费3 | 毛片网站在线观看 | 色男人的天堂久久综合 | 亚洲精品蜜桃AV久久久 | 美国一级大黄一片免费的网站 | 亚洲精品AV一区午夜福利 | 国产精品久久久久久久久久影院 | xlxx美女| 国内高清在线观看视频 | 国产精品久久久精品a级小说 | 国产日韩欧美三级 | 美丽的姑娘BD在线观看 | 秋霞伦理电影在线看 | a在线免费观看视频 | 日本阿v在线资源无码免费 日本阿v片在线播放免费 | 欧美手机在线播放 | metart中国撒尿人体欣赏 | 精品久久久麻豆国产精品 |