当前位置: 首页 > news >正文

如何发布网页徐州seo外包

如何发布网页,徐州seo外包,公司注册地址变更流程,佛山网站建设4-win方维java 字符串文字筛选我了解Java语言的思想很难以向后兼容的方式进行维护。 我知道JDK API(例如集合)的想法很难打破。 是。 我不明白为什么Java 仍然没有多行字符串文字。 您多久编写一次这样的JDBC代码(或您想要嵌入到Java中的任何其他外部…

java 字符串文字筛选

我了解Java语言的思想很难以向后兼容的方式进行维护。 我知道JDK API(例如集合)的想法很难打破。 是。

我不明白为什么Java 仍然没有多行字符串文字。

您多久编写一次这样的JDBC代码(或您想要嵌入到Java中的任何其他外部语言或标记,例如JSON或XML)?

try (PreparedStatement s = connection.prepareStatement("SELECT * "+ "FROM my_table "+ "WHERE a = b "
)) {...
}

怎么了

  • 语法正确性 ,即不要忘记在每行的末尾添加空格
  • 宿主语言的样式与外部语言的样式 ,请确保上面的代码看起来用Java格式看起来“不错”,但对于使用方服务器端则没有格式化
  • SQL注入 ,我们不是教导我们的下辈不要在SQL中执行这种字符串连接以防止SQL注入吗? 当然,以上内容仍然是安全的,但是是什么原因使经验不足的维护者无法嵌入用户输入呢?

今天,我正在使用Xtend编写一些代码, Xtend是一种非常有趣的语言,可以编译成Java源代码。 Xtend对模板非常有用(例如,用于生成jOOQ的Record1 – Record22 API)。 我注意到多行字符串的另一个非常好的功能:

无需逃脱!

Xtend中的多行字符串以三撇号终止。 例如

// Xtend
val regex = '''import java\.lang\.AutoCloseable;'''

是的,以上是有效的Java正则表达式。 匹配AutoCloseable类型的导入时,我在转义点。 我不必在普通字符串中执行繁琐的两次转义操作,就可以告诉Java编译器反斜杠实际上是反斜杠,而不是Java转换了以下字符:

// Java
String regex = "import java\\.lang\\.AutoCloseable;";

所以……转换为我们最初SQL示例,我真的很想写这个:

try (PreparedStatement s = connection.prepareStatement('''SELECT *FROM my_tableWHERE a = b'''
)) {...
}

具有很大的优势:字符串插值(甚至PHP都有)!

String tableName = "my_table";
int b = 1;
try (PreparedStatement s = connection.prepareStatement('''SELECT *FROM ${tableName}WHERE a = ${b}'''
)) {...
}

小但非常有效的改进

这将是非常小的(就语言复杂性预算而言:只是一个新令牌),但是对于我们所有人都在Java中嵌入外部语言(SQL,XML,XPath,Regex等)的非常有效的改进。 我们做了很多。 我们讨厌它。

它不必像Xtend的多行字符串文字那样强大( 它确实与用于格式设置和模板化表达式的空白管理结合在一起 )。 但这将是一个开始。

请把它作为新年的决议! :)

翻译自: https://www.javacodegeeks.com/2016/01/please-java-finally-support-multiline-string-literals.html

java 字符串文字筛选

http://mrfarshtey.net/news/444/

相关文章: