JAVA代碼編寫時 Java代碼編寫時序圖

用idea編寫java代碼時突然出現(xiàn)的問題求大佬指點

Java8在2014年三月發(fā)布了。我們打算將Pondus的所有生產服務器升級到這一新版本。從那時起,我們將大部分代碼庫遷移到lambda表達式、數(shù)據(jù)流和新的日期API上。我們也會使用Nashorn來把我們的應用中運行時發(fā)生改變的部分變成動態(tài)腳本。

專注于為中小企業(yè)提供成都網(wǎng)站建設、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)秀英免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

除了lambda,最實用的特性是新的數(shù)據(jù)流API。集合操作在任何我見過的代碼庫中都隨處可見。而且對于那些集合操作,數(shù)據(jù)流是提升代碼可讀性的好方法。

但是一件關于數(shù)據(jù)流的事情十分令我困擾:數(shù)據(jù)流只提供了幾個終端操作,例如reduce和findFirst屬于直接操作,其它的只能通過collect來訪問。工具類Collctors提供了一些便利的收集器,例如toList、toSet、joining和groupingBy。

例如,下面的代碼對一個字符串集合進行過濾,并創(chuàng)建新的列表:

stringCollection

.stream()

.filter(e - e.startsWith( "a"))

.collect(Collectors.toList());

在遷移了300k行代碼到數(shù)據(jù)流之后,我可以說,toList、toSet、和groupingBy是你的項目中最常用的終止操作。所以我不能理解為什么不把這些方法直接集成到Stream接口上面,這樣你就可以直接編寫:

stringCollection

.stream()

.filter(e - e.startsWith( "a"))

.toList();

這在開始看起來是個小缺陷,但是如果你需要一遍又一遍地編寫這些代碼,它會非常煩人。

有toArray()方法但是沒有toList(),所以我真心希望一些便利的收集器可以在Java9中這樣添加到Stream接口中。是吧,Brian??_?

注:Stream.js是瀏覽器上的Java 8 數(shù)據(jù)流API的JavaScript接口,并解決了上述問題。所有重要的終止操作都可以直接在流上訪問,十分方便。詳情請見API文檔。

無論如何,IntelliJ IDEA聲稱它是最智能的Java IDE。所以讓我們看看如何使用IDEA來解決這一問題。

使用 IntelliJ IDEA 來幫忙

IntelliJ IDEA自帶了一個便利的特性,叫做實時模板(Live Template)。如果你還不知道它是什么:實時模板是一些常用代碼段的快捷方式。例如,你鍵入sout并按下TAB鍵,IDEA就會插入代碼段System.out.println()。更多信息請見這里。

如何用實時模板來解決上述問題?實際上我們只需要為所有普遍使用的默認數(shù)據(jù)流收集器創(chuàng)建我們自己的實時模板。例如,我們可以創(chuàng)建.toList縮寫的實時模板,來自動插入適當?shù)氖占?collect(Collectors.toList())。

下面是它在實際工作中的樣子:

讓我們看看如何自己構建它。首先訪問設置(Settings)并在左側的菜單中選擇實時模板。你也可以使用對話框左上角的便利的輸入過濾。

下面我們可以通過右側的+圖標創(chuàng)建一個新的組,叫做Stream。接下來我們向組中添加所有數(shù)據(jù)流相關的實時模板。我經常使用默認的收集器toList、toSet、groupingBy 和 join,所以我為每個這些方法都創(chuàng)建了新的實時模板。

這一步非常重要。在添加新的實時模板之后,你需要在對話框底部指定合適的上下文。你需要選擇Java → Other,然后定義縮寫、描述和實際的模板代碼。

// Abbreviation: .toList

.collect(Collectors.toList())

// Abbreviation: .toSet

.collect(Collectors.toSet())

// Abbreviation: .join

.collect(Collectors.joining( "$END$"))

// Abbreviation: .groupBy

.collect(Collectors.groupingBy(e - $END$))

特殊的變量$END$指定在使用模板之后的光標位置,所以你可以直接在這個位置上打字,例如,定義連接分隔符。

提示:你應該開啟"Add unambiguous imports on the fly"(自動添加明確的導入)選項,便于讓IDEA自動添加 java.util.stream.Collectors的導入語句。選項在 Editor → General → Auto Import中。

讓我們在實際工作中看看這兩個模板:

連接分組

Intellij IDEA中的實時模板非常靈活且強大。你可以用它來極大提升代碼的生產力。你知道實時模板可以拯救生活的其它例子嗎?請讓我知道!

作者:布客飛龍 segmentfault.com/a/1190000006033999

做java軟件工程師,怎樣才能寫出好的代碼?

Java代碼之于java程序員而言就是左膀右臂,java代碼寫的好的java程序員明顯更是企業(yè)的歡迎,一個優(yōu)秀的java程序員的考核標準之一也是看他的編程水平。

其實有的java程序員java代碼會受到大家的追捧,是因為他在寫代碼時注意的細節(jié)往往多于那些不怎么關注java代碼編程細節(jié)的程序員,俗話說:“細節(jié)決定成敗”,那么如何寫出好的java代碼呢?IT培訓介紹一起來討論下:

1.重視注釋

有的java程序員在寫代碼時,從來沒有想過要在java代碼后加上相關的注釋,甚至是上萬行的代碼也沒有想過加上注釋,這就存在很大的問題,不說你的代碼會跟其他人分享討論,就你自己回顧你是怎么寫好這篇代碼的,你也是半天無法理出頭緒,這就為維護和修改等等工作添加了很大的麻煩。所以,要想寫出好的java代碼,一定從簡短的java代碼編寫開始注重在java代碼后面加上相應的注釋,養(yǎng)成良好的習慣。

2.重視排版整潔

看很多java程序員的排版總覺得在欣賞一幅藝術品,但是看到一些java程序員的排版卻總覺得無力吐槽。同樣是編寫代碼,但是給人的視覺體驗是相當?shù)牟煌?,當然好的java代碼給人的享受也是美的,所以要想寫出好的代碼,一定要重視排版整潔。

3.注重命名規(guī)則

現(xiàn)在在一個團隊開發(fā)中,都會提前定制一個統(tǒng)一的命名規(guī)則,這樣利于提高工作效益。但是很多java程序員是缺乏這個意識的,每次敲代碼,更喜歡按照自己慣常的方式老命名模塊、函數(shù),這樣是方便了自己,但是忽視團隊協(xié)作,所以在日常工作中,特別是團隊工作中一定要重視命名規(guī)則。

4.養(yǎng)成備份習慣

備份的重要性不用小編強調,相必你也知道。但是有的java程序員就是沒有養(yǎng)成這樣的好習慣,每次敲完代碼就不記得隨手保存,每次等到除了事故,比如電腦出了故障,辛辛苦苦敲打的java代碼沒保存找不回來的情況下就開始懊惱,與其這樣還不如在一開始就養(yǎng)成良好的備份習慣,這樣也方便自己日后查找利用。

北大青鳥設計培訓:Java程序員編寫代碼的技巧?

java程序員編寫代碼的技巧有哪些呢?Java程序員必須努力編寫完美的代碼,因此,為了編寫干凈的代碼,必須知道如何編寫才是真正的好方法,下面鄭州鄭州java軟件開發(fā)為大家總結了一些幫助編寫代碼的小方法。

1、編寫之前進行思考首先花10分鐘,20分鐘甚至30分鐘的時間來思考你需要什么,以及哪些設計模式適合你將要編碼的內容。

這個時候鄭州鄭州IT培訓認為你會很高興你花費的這些時間,當你必須改變或添加一些代碼時,你不會擔心花費的幾分鐘,而是會花更多的時間去琢磨。

2、代碼進行注釋沒有什么比兩個月后檢查你的代碼并不記得它被用來做什么更糟的了。

重要的都注釋一下,如果是自己非常了解的內容,鄭州北大青鳥建議這些可以選擇不進行注釋。

3、不要復制粘貼代碼最后自己手寫代碼,復制粘貼代碼會出現(xiàn)代碼塊重復的情況,并且不利于代碼的解讀。

4、學會測試代碼測試、測試、測試你的代碼。

不要等到你完成了程序才測試它,否則當你發(fā)現(xiàn)一個巨大的錯誤時,你會后悔之前的決定。

因為鄭州計算機培訓學校發(fā)現(xiàn)如果你沒有進行每段代碼測試,最后出現(xiàn)問題是很難找到的。

網(wǎng)站名稱:JAVA代碼編寫時 Java代碼編寫時序圖
文章源于:http://muchs.cn/article38/ddciipp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃關鍵詞優(yōu)化、服務器托管搜索引擎優(yōu)化、定制網(wǎng)站、外貿建站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管