日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 字符串文字筛选_拜托,Java。 最终是否支持多行字符串文字

發布時間:2023/12/3 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 字符串文字筛选_拜托,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 = $''' )) {... }

小但非常有效的改進

這將是非常小的(就語言復雜性預算而言:只是一個新令牌),但是對于我們所有人都在Java中嵌入外部語言(SQL,XML,XPath,Regex等)的非常有效的改進。 我們做了很多。 我們討厭它。

它不必像Xtend的多行字符串文字那樣強大( 它確實與用于格式設置和模板化表達式的空白管理結合在一起 )。 但這將是一個開始。

請把它作為新年的決議! :)

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

java 字符串文字篩選

總結

以上是生活随笔為你收集整理的java 字符串文字筛选_拜托,Java。 最终是否支持多行字符串文字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。