Java的原始字符串文字

似乎“ 原始字符串文字 ”即将出现在Java中。 JEP 326开始的(“原始字符串字面量”) 发行JDK-8196004 ,并宣布为“新JEP候选人” 3月2日的JEP和相关问题的人指出,“Java的仍然是一小群现代编程语言中的一个不为原始字符串提供语言级别的支持。” JEP及其相关问题特别引用了编程语言C, C ++ , C# (“ 逐字 ”), Dart , Go , Groovy , Haskell , JavaScript , Kotlin , Perl , PHP , Python , R , Ruby , Scala和Swift和“ Unix工具” bash , grep和sed “针对它们的定界符以及原始行和多行字符串的使用而进行了调查。”

JEP 326的“摘要”概述了拟议的Java原始字符串文字:“原始字符串文字可以跨越源代码的多行,并且不能解释形式为\ n的转义序列,例如\ n或Unicode转义。 uXXXX。” 该JEP的“动机”部分添加了以下内容:“该JEP提出了一种新型的文字,即原始字符串文字 ,该文字保留了Java转义符和Java行终止符规范,以提供在许多情况下更易读和可维护的字符序列。而不是现有的传统字符串文字。” JEP 326 没有引入插值 ,实际上,在其“非目标”部分中将其排除在外:“原始字符串文字不直接支持字符串插值。 将来的JEP中可以考虑使用插值。”

Java 长期以来 一直 希望使用 多行String文字 。 JEP 326 (“原始字符串文字”)当前列出了几个示例,这些示例说明了原始字符串文字如何使在Java中更容易实现常见事物,并且这些示例用法包括多行字符串 ,操作系统文件路径 , 正则表达式 , 关系数据库SQL语句 ,以及polygot( Java + JavaScript )。

JEP 326的当前版本指出,将通过使用“ 反引号 ”字符( ` )来表示Java的原始字符串文字,该字符在JEP中也被描述为\u0060 ( Unicode“ Grave Accent” ),“ backquote ”,和“ 重音 ”。 我没有显示提议的语法的任何示例,因为JEP已经很好地列出了这些提议的原始字符串文字示例以及实现同一件事所需的传统Java代码的示例。 如果支持原始字符串文字,则可以轻松地将所需的当前语法与将来完成相同操作所需的语法进行比较。

对Java中的原始字符串文字的支持将为希望编写更具可读性的代码来支持JEP中描述的用例的Java开发人员提供便利。 它将为库甚至JDK代码提供类似的优势。 core-lib-devs邮件列表帖子“ Raw String Literal Library Support ” [ JDK-8196005 ]开始了“关于RSL库支持的讨论”。 (在这种情况下,“库支持”的上下文是JDK,RSL代表Raw String Literal。)。

在参考的“ 原始字符串文字库支持”一文中 , Jim Laskey提供了可能添加到String的方法列表,以利用原始字符串文字。 这些引发讨论的想法包括“线路支持”,“修剪”方法的增强,“保证金管理”和“逃生管理”。 其中一些由RSL促进,而其他一些由RSL必需。 引用的文章提供了每个示例的多个示例。

问题JDK-8198986指出“原始字符串文字需要一个新的JLS节。” 此问题链接到当前建议的部分 , 该部分将添加到所引用的Java语言规范中 。

尽管JEP 326仍然只是“候选”,并且与特定版本的Java无关,但有关它的最新工作以及邮件列表中最近的讨论(寻求与之相关的输入)使我对我们会看到多种形式保持谨慎的乐观态度。 Java字符串和其他原始字符串文字将在将来的版本中引入Java。

翻译自: https://www.javacodegeeks.com/2018/03/raw-string-literals-coming-to-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java可能使用UTF-8作为其默认字符集

由于基于Java的应用程序通常用于各种各样的操作系统和环境中,因此Java开发人员经常会遇到与基于字符的输入和输出有关的问题 。 涉及这些问题的博客文章包括《警察的恐怖:默认语言环境,默认字符集和默认时区》 ; 注释JDK默认数据 …

rest api_摆脱困境:向REST API添加验证

rest api我对此感到有些ham愧,但是直到昨天,我才知道我可以通过使用Valid和RequestBody批注将验证添加到REST API中。 这在Spring MVC 3.0中不起作用,由于某种原因,我没有注意到在Spring MVC 3.1中添加了对此功能的支持 。 我从不…

2020-08-07 光纤通信第二章知识点整理

目录 2.1 半导体激光器 2 2.1.1 激光原理的基础知识 2 2.1.2 激光激射条件 3 2.1.3 结构理论 4 2.1.4 典型分类 6 2.1.5 模式概念 7 2.1.6 基本性质 8 2.2 半导体发光二极管 10 2.2.1 工作原理 10 2.2.2 结构和分类 10 2.2.3 主要性质 10 2.3 光源的直接调制 11 2.3…

静态分析的教育方面

加入我们项目的新程序员经常会问我们是否具有自动格式化工具,以使Java代码看起来完全符合Qulice的期望。 (Quili是我们使用的静态分析器。)我总是回答说,拥有这样一个自动代码抛光器只会有害,不会帮助项目及其成员改进…

2020-08-14 光纤通信第三章知识点整理

目录 3.1 光接收机 2 3.1.1 光接收机的分类与性能指标 2 3.1.2 直接检测光接收机的构成及功能 2 3.2 光电检测器 3 3.2.1 PN结的光电效应 4 3.2.2 PIN光电二极管 4 3.2.3 雪崩光电二极管(APD) 6 3.3 放大电路及其噪声 7 3.3.1 噪声的数学处理 8 3.3.2 放…

2020-08-21 光纤通信第四章知识点整理

第四章 光纤通信系统 目录 4.1 模拟光纤通信 2 4.2 数字光纤通信系统和总体设计 3 4.2.1 数字光纤通信系统基本组成 3 4.2.2 数字光纤通信系统总体设计 4 4.3 数字光纤传输系统的性能指标 7 4.3.1 误码性能 7 4.3.2 抖动、漂移性能 8 4.3.3 可用性 8 4.4 光纤放大器及其在光纤通…

scm maven_在运行时访问工件的Maven和SCM版本

scm maven您可以轻松地告诉Maven在JAR清单文件中包含工件的版本及其Git / SVN /…修订版,然后在运行时通过getClass()。getPackage访问该信息。 getImplementationVersion() 。 (所有功劳归功于MarkusKrger…

2020-08-24 光纤通信第五章知识点整理

第五章 无源光器件和WDM技术 目录 5.1 无源器件的几个常用性能参数 1 5.2 光纤和波导型无源光器件 2 5.2.1 光连接器和光耦合器 2 5.2.2 偏振控制器 3 5.2.3 光纤布拉格光栅 4 5.2.4 Mach-Zahnder滤波器 5 5.2.5 非线性环路镜 5 5.3 光学无源器件 6 5.3.1 偏振分束器 6 5.3.2 光…

使用Java 9向Javadoc搜索添加术语

有一个相对较旧的网页,称为“ Proposed Javadoc Tags ”,最初似乎是与Javadoc 1.2一起编写的,其中列出了“ Sun有朝一日可能会在Javadoc中实现的标签”。 在此列表中的标签是category , example , tutorial &#xff0…

Java学习、简单代码编译

【2.1】求明天是星期几 public class study { public static void main(String args[]) { short i7; short tomorrow,yesterday; tomorrow (short) ((i1) % 7); yesterday (short)((i-17) % 7); System.out.print(“tomorrow:”tomorrow" “”\n"); System.out.pr…

Java学习:类的封装、继承和多态

【3.1】声明日期类及使用日期对象 public class MyDate{ //类声明 int year,month,day; //成员变量,表示年月日 void set(int y,int m,int d) //成员方法、设计日期值 { yeary; monthm; dayd; } void set(MyDate d) //将当前对象值设置为参数值,重载 { …

同步器 java_您可能不知道的五个高级Java同步器

同步器 java除了基于每个Java对象具有的锁定位的通用同步外,您还可以使用Java中更复杂的同步器,例如: 信号量 –使用许可的概念表示一个位置中允许的最大线程数。 当使用值1时,其行为类似于同步,也称为二进制信号量。…

Java语言学习概述

md:创建新的文件夹 上面这行作用:将name:Tom,age12写入到文件1.doc中,也就是说先建个文档,再把这句话写进去。 del *.txt 作用:删除以txt结尾的所有文件 rd team2 作用:删除team2文件夹(且这…

在CDI应用程序中使用@Alternative

在许多情况下,您可能希望拥有一个以上版本的Bean,并将其用于不同的目的。 备用bean的典型理由是出于测试目的,其中备用bean提供模拟数据。 为了获得实时数据,“真实” bean必须连接到的实时系统的好处是远程,或者在测试…

小狐狸ChatGPT付费创作系统 前端对话提示undefined index:temperature解决方法

很多会员使用着ChatGPT付费创作系统,特别是新安装系统后前端输入对话时提示错误undefined index:temperature,检查了反代、检查了KEY均正常,这问题主要是因为后台设置里新用户免费送对话次数为空,没设置赠送次数原因,导…

第二章 Java基本语法(一)

本文主要内容: 关键字、标识符、变量、类型转换、进制转换、运算符 一、关键字 二、标识符 比如:类名,变量名,方法名,接口名,包名。。。 小技巧:直接在我的电脑输入cmd,就可以打开…

第二章 Java基本语法(二)

本文主要内容&#xff1a; 运算符、if-else、switch-case 一、位运算符 运算符之五&#xff1a;位运算符 每左移一位&#xff0c;相当于是在原来的基础上乘2. int i 21; System.out.println(“i<<2:”(i<<2)); 输出&#xff1a;i<<2:84 结论&#xff1a; …

java 断点_每个Java开发人员应拥有的持久断点

java 断点当开发人员使用Java进行工作时&#xff0c;即使您尝试调试其他内容&#xff0c;也总是会遇到一些失败的情况。 这是应该在每个IDE中启用的持久断点的列表。 &#xff08;恕我直言&#xff09; 是的&#xff0c;从理论上讲&#xff0c;您应该能够从良好的日志记录实现…

第二章 Java基本语法(三)

本文主要内容&#xff1a; 循环结构、特殊关键字break和continue的使用&#xff0c;质数问题的优化 循环结构&#xff1a;Boolean类型 程序编写&#xff1a; 从键盘输入两个正整数m和n&#xff0c;找出他们的最大公约数和最小公倍数。 import java.util.Scanner; public clas…

用Priam设置Cassandra

前面已经解释了如何在AWS中设置Cassandra 。 所描述的设置有效&#xff0c;但在某些情况下可能还不够。 例如&#xff0c;它不能为您提供制作和还原备份的简便方法&#xff0c;添加新节点依赖于自定义python脚本&#xff0c;该脚本会随机选择一个种子。 因此&#xff0c;现在我…