① 用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不存在中文乱码问题)!