用idea编写java代码时突然出现的问题求大佬指点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用idea编写java代码时突然出现的问题求大佬指点相关的知识,希望对你有一定的参考价值。

用IDEA练习一些简单的Java代码结果今天一打开就出现这个错误,运行的时候也是这个错误,求大佬指点

Java8在2014年三月发布了。我们打算将Pondus的所有生产服务器升级到这一新版本。从那时起,我们将大部分代码库迁移到lambda表达式、数据流和新的日期API上。我们也会使用Nashorn来把我们的应用中运行时发生改变的部分变成动态脚本。

除了lambda,最实用的特性是新的数据流API。集合操作在任何我见过的代码库中都随处可见。而且对于那些集合操作,数据流是提升代码可读性的好方法。

但是一件关于数据流的事情十分令我困扰:数据流只提供了几个终端操作,例如reduce和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

参考技术A 联网 重构一下,试试可不可以

用java怎么编写小程序 微信小程序常见使用“MINA”框架是指什么

大家一说到java,都很头疼,尤其是现在针对小程序时,从我理解的小程序,它是和web项目没有太大区别的,只是前端代码不是html,后台该怎莫处理就怎么处理,用json传输数据,小程序调取java写的api。昨天我在搭建一个小程序服务器环境(www.zhaogouwu.cn)后来是数据没获取到,试过用api测试接口工具测试一下能不能正常访问,如果正常就是小程序前端访问的问题了。

微信小程序的开发可以用html,css,JavaScript语言来编写前端页面,也可以使用PHP语言来开发或者对于技术要求高的程序可以使用Java语言来编写。

技术图片

小程序是基于微信平台的轻量级应用,它的开发是应用微信提供的小程序前端规范,结合企业自己开发的应用后端来制作。总体来说,也就是微信小程序在微信平台中只需要开发前端版本,而在后台等部分则由网站公司采用各种程序语言自行编写。

HTML/CSS/JS语言开发

html:超文本标记语言,是一种用于创建网页的标准标记语言,可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。

css:层叠样式表,能让我们更精确的控制网页版面的文字、背景、字型等…它能让我们只修正一个css文件,便可同时更新众多的网页版面外观及格式,还可以使html的文件内码更精简,缩小档案下载的速度。

js:js是Javascript的缩写形式,而Javascript是一种基于对象和事件驱动并且具有相对安全性的客户端脚本语言。它在Web开发中JS占据着举足轻重的地位,所有交互、逻辑层的代码都应该由它来实现。

PHP/JAVA语言开发

对于微信小程序而言,前端程序是唯一差异于网站建设技术的,因此,只要前端程序过得了关,能够写前端的接口,那么您使用PHP,又或者java,以及asp.net的程序语言都是完全支持的。一般对于企业而言,都是采用php程序开发微信小程序;技术要求高一点的可以采用java程序开发。这些开发方式成都锐美网络都已实践,且能保证效果。

技术图片
微信小程序常见使用“MINA”框架,Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架,Mina 可以帮助开发者快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。这个框架为微信小程序的运行提供了丰富的组件和API。微信小程序开发者要学会和掌握小程序的框架结构、数据绑定机制、模板、数据缓存、常用组件和API等相关知识。

以上是关于用idea编写java代码时突然出现的问题求大佬指点的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机的串口突然接收不到消息,求大佬帮忙看看

求程序大佬用C语言写一个随机点名的程序?

java idea没有快捷输入怎么解决?

IntelliJ IDEA工具编写android XML文件不出现代码提示

用java编写程序,求集合的并集、交集和差集

写了一个用java播放音频的代码,运行时总是出现错误!求指点!