① 用idea編寫java代碼時突然出現的問題求大佬指點
Java8在2014年三月發布了。我們打算將Pons的所有生產伺服器升級到這一新版本。從那時起,我們將大部分代碼庫遷移到lambda表達式、數據流和新的日期API上。我們也會使用Nashorn來把我們的應用中運行時發生改變的部分變成動態腳本。
除了lambda,最實用的特性是新的數據流API。集合操作在任何我見過的代碼庫中都隨處可見。而且對於那些集合操作,數據流是提升代碼可讀性的好方法。
但是一件關於數據流的事情十分令我困擾:數據流只提供了幾個終端操作,例如rece和findFirst屬於直接操作,其它的只能通過collect來訪問。工具類Collctors提供了一些便利的收集器,例如toList、toSet、joining和groupingBy。
例如,下面的代碼對一個字元串集合進行過濾,並創建新的列表:
stringCollection
.stream()
.filter(e -> e.startsWith( "a"))
.collect(Collectors.toList());
在遷移了300k行代碼到數據流之後,我可以說,toList、toSet、和groupingBy是你的項目中最常用的終止操作。所以我不能理解為什麼不把這些方法直接集成到Stream介面上面,這樣你就可以直接編寫:
stringCollection
.stream()
.filter(e -> e.startsWith( "a"))
.toList();
這在開始看起來是個小缺陷,但是如果你需要一遍又一遍地編寫這些代碼,它會非常煩人。
有toArray()方法但是沒有toList(),所以我真心希望一些便利的收集器可以在Java9中這樣添加到Stream介面中。是吧,Brian?ಠ_ಠ
註:Stream.js是瀏覽器上的Java 8 數據流API的JavaScript介面,並解決了上述問題。所有重要的終止操作都可以直接在流上訪問,十分方便。詳情請見API文檔。
無論如何,IntelliJ IDEA聲稱它是最智能的Java IDE。所以讓我們看看如何使用IDEA來解決這一問題。
使用 IntelliJ IDEA 來幫忙
IntelliJ IDEA自帶了一個便利的特性,叫做實時模板(Live Template)。如果你還不知道它是什麼:實時模板是一些常用代碼段的快捷方式。例如,你鍵入sout並按下TAB鍵,IDEA就會插入代碼段System.out.println()。更多信息請見這里。
如何用實時模板來解決上述問題?實際上我們只需要為所有普遍使用的默認數據流收集器創建我們自己的實時模板。例如,我們可以創建.toList縮寫的實時模板,來自動插入適當的收集器.collect(Collectors.toList())。
下面是它在實際工作中的樣子:
讓我們看看如何自己構建它。首先訪問設置(Settings)並在左側的菜單中選擇實時模板。你也可以使用對話框左上角的便利的輸入過濾。
下面我們可以通過右側的+圖標創建一個新的組,叫做Stream。接下來我們向組中添加所有數據流相關的實時模板。我經常使用默認的收集器toList、toSet、groupingBy 和 join,所以我為每個這些方法都創建了新的實時模板。
這一步非常重要。在添加新的實時模板之後,你需要在對話框底部指定合適的上下文。你需要選擇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可以直接用intellij idea編寫程序嗎
首先用idea敲代碼當然是可以的。
原因的話可以簡單分析:
idea是一個不錯的工具,不過即便工作多年的人,大部分也只是用到了它少部分功能。所以idea的話,找篇文章看下怎麼運行起來程序就可以了。
③ idea寫的Java為啥運行不了多線程
多線程與代碼有關,即使用notepad寫一個,也不會有任何不同。
你說的估計是不能並發吧。並發與你的cpu有關,如果打開的項目比較多,而且佔了你的cpu,或者你的機器配置較低,無法並發是可能的。
④ 在idea中如何新建java文件
從開始菜單運行IntelliJ Idea
創建name為「JavaStudy",location為「E:\workspace\JavaStudy」的Project
在src目錄上點點右鍵,創建package name為「chapter1」的 Package
在創建的package「chapter1」上點右鍵,創建name為「InvokeAbstractClassMethod」的java class
寫一個簡單的Java classpackage chapter1;public class InvokeAbstractClassMethod { public static void main(String[] args) { System.out.println(Tools.addGoodMorningBefore("Tom")); }}abstract class Tools { public static String addGoodMorningBefore(String name) { return String.format("Good Morning ,%s", name); } abstract void process();}
在java代碼編輯區任何位置點右鍵,在彈出的菜單上選 帶有綠色三角符號對應的項,即可運行main方法中的代碼
在左下方的面板中可以查看運行結果
⑤ idea中寫java程序怎麼不自動引入jar包
說明該類不是可編譯文件。 在project Structure中(快捷鍵ctrl+alt+shift+s)選Moles將你帶紅圈的文件添加上,將你帶紅圈的文件夾設為Sources。一般是src文件夾,點Sources文件夾,然後點擊OK。 設置為可編譯文件再去工程中看就沒紅圈了。
⑥ 用idea怎樣寫java單元測試
1、選擇「Create New Project」 2、選擇Java,然後點擊Next 3、點擊Next 4、填寫項目名,然後點擊Finish 5、在「src」目錄上右擊,選擇「New」->「Java Class」 6、填寫類名,然後點擊OK 7、程序寫完後點擊綠色的箭頭 8、選擇第一項 9、完成。
⑦ 怎麼用IntelliJ IDEA開發JAVA程序
主要步驟如下:
1、File——>New
Project
2、Next
3、輸入Name,在Project
files
location中選擇文件要存放的位置,Next
4、Next
5、選擇要創建的項目或者直接點finish,創建簡單的java項目
6、創建一個新類
7、如下:
8、輸入代碼:
9、Ctrl+Shift+F10,運行該類:
⑧ ubuntu 怎麼用idea寫java
首次運行idea,可以自己隨便建一個項目(其實我不知道有何意義)
進入界面後,可以稍微改一下風格,開發使用顏色暗點的風格,聽說有利於眼睛,我反正已經習慣使用暗灰色的界面了。
>>File>>Settings>>Appearance 在Theme中選擇Darcula,姑且理解為夜間模式
>>File>>Settings>>File Encodings 將能設置的編碼,統一設置為適合你用的編碼,我全部使用的是UTF-8(因為這個,後面可能還存在問題,聽說GBK不存在中文亂碼問題)!