我们为什么那么关注 Java 中的 String Template ,Java 21 特性

news2024/12/22 23:45:26

本心、输入输出、结果

文章目录

  • 我们为什么那么关注 Java 中的 String Template ,Java 21 特性
    • 前言
      • String Template
      • String Template 有什么好处
      • 字符串连接 – 一个常见但无趣且容易出错的任务
      • jetbrains IDEA 2023.2 版本及以上对于 String Template 的支持
      • 字符串模板和 IntelliJ IDEA 中的嵌入式表达式
      • 花有重开日,人无再少年
      • 实践是检验真理的唯一标准

我们为什么那么关注 Java 中的 String Template ,Java 21 特性


编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263

个人简介 : 简简单单Online zuozuo,目前主要从事 Java 相关工作,商业方向为 B、G 端,主要使用Java、Python 进行日常开发,喜欢探索各个方面的内容,对很多的方向、内容感兴趣 :目前对 AIGC、云计算、物联网方向感兴趣

未闻万里蓬莱,而窥先圣遗智。故,以此生筑梦,奔而逐之;以泰山之伟,攀而登之;以静雅素心,处世为人。

欢迎有兴趣的朋友相互交流,共同成长。微信: tja6288 商务合作/资料获取/技术交流


如果觉得本文对你有帮助,欢迎点赞、收藏、评论

前言

在这里插入图片描述

现有的字符串连接选项很难使用,并且可能容易出错。字符串模板(Java 21 中引入的预览功能)通过将常量字符串与变量值合并,极大地改进了我们在Java 中创建字符串的方式

在这里插入图片描述

String Template

此功能的名称几乎说明了一切 - 字符串模板。将其视为包含字符串文本和变量值的模式。变量值可以是变量、表达式或方法调用,它们的值在运行时注入

代码是什么样子的,下面是一个示例,它使用字符串模板创建具有文本和变量值的多行字符串,并将其传递给:logger.info()

logger.info(STR."""
               Order processed successfully:
               Order ID: \{orderId}, placed on \{orderDate}
               \{product}, \{quantity} (\{product.contains("pens") ? "dozens" : "units"})
               Total Price: \{calculatePrice(product, quantity)}""");

在这里插入图片描述

String Template 有什么好处

简化了字符串创建——您不再需要使用串联运算符(如“+”),尤其是在处理较长或多行字符串时

多行字符串包括 String 文本和变量值的组合(通过变量、方法调用,甚至是返回值(如三元运算符)的代码片段)。通过将变量值包含在
String 中,可以更清楚地了解其值的插入位置。当然,也有像 、 和 这样的替代方案

字符串模板提供的不仅仅是使用字符串连接读取和写入代码的便利性,将变量值与 String 常量混合使用时,它们提供了一层安全性

在这里插入图片描述

字符串连接 – 一个常见但无趣且容易出错的任务

以下是一个字符串拼接的代码示例

public void processOrder(int orderId,String product,int qty,LocalDate orderDate){
        if(quantity<=0){
        String errorMessage="Invalid order quantity: "+qty+
        " for product "+product+", order ID "+orderId;
        logger.error(errorMessage);
        return;
        }
        //.. Remaining code
        }

但是可能经常会因为空格问题导致出现错误

Invalid order quantity: -5for productWidget,order ID12345

在这里插入图片描述

jetbrains IDEA 2023.2 版本及以上对于 String Template 的支持

从 IntelliJ IDEA 版本 2022.2.2 开始提供对 Java 21 的基本支持。在其“2023.3 版本”中添加了更多支持

若要使用字符串模板,请转到“项目设置”|”项目,将项目 SDK 设置为 21,并将项目语言级别设置为“21(预览版)– 字符串模板、未命名类和实例主方法等

在这里插入图片描述

如果您已经在系统上下载了 JDK 21,则可以使用它,或者通过单击“编辑”,然后选择“添加 SDK >”,然后选择“下载 JDK
21…”来下载它。您可以从供应商列表中进行选择

在“模块”选项卡上,确保为模块选择相同的语言级别 – '21 (预览版) – 字符串模板、未命名的类和实例主方法等:

在这里插入图片描述

在这里插入图片描述

字符串模板和 IntelliJ IDEA 中的嵌入式表达式

@

每个嵌入的表达式都必须包含在 中。键入时,IntelliJ IDEA 会为您添加结束语 ‘’
。它还提供代码完成功能,以帮助您选择作用域中的变量或其上的任何方法。如果插入的代码无法编译,IntelliJ IDEA 也会突出显示该代码(作为编译错误)

在这里插入图片描述

花有重开日,人无再少年

在这个充满困难和挑战的时期内,我们依然应该保持积极向上,放下遥不可及的欲望,平凡的普通人也可以成就自己的小梦想

在这个充满变化和无限可能的世界里,每一天都是新的开始。让我们拥抱今天,以积极乐观的心态去面对生活的挑战和机遇。

无论我们遇到什么困难,都要相信自己的力量和智慧,勇敢地迎接挑战。因为每一次的克服和超越,都将使我们的生命更加丰富多彩。

我们要学会欣赏生活中的美好事物,用感恩的心去珍惜所拥有的一切。这样,我们就会发现,快乐其实就在我们的身边,时时刻刻陪伴着我们。

让我们保持对未来的信心和热情,勇敢地追求自己的梦想。无论路途多么艰辛,只要我们坚持不懈,终将实现自己的目标。

让我们一起相信,只要我们心中充满阳光,就没有什么能够阻挡我们前进的步伐。让我们用积极乐观的心态,书写属于我们的精彩人生!

实践是检验真理的唯一标准

✅ 🥶 😎 😟 😲 😰 😭 😓
🔔️ 😂 😅 😍 😘 😚 😜 🤢
👿 💀 👽 👾 😻 💕 💔 💯
💦 💤 🤝 🙍‍♂️ 🙍 🍊 🍉 🍏

感谢亲的点赞、收藏、评论,一键三连支持,谢谢

在这里插入图片描述

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

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

相关文章

今年圣诞爆款已出现!GMV稳定超越十万美刀,“装饰赛道”的爆单机会先到先得!

据统计&#xff0c;TiktTok平台圣诞节标签的流量已达40亿&#xff0c;且仍持续上涨。 流量驱动商品交易&#xff0c;转动短期生意增收飞轮。 在商品端&#xff0c;具有圣诞元素的服装、美妆、装饰类等商品频频热卖&#xff0c;仅仅一个小小的圣诞装饰信封&#xff0c;就在一个…

力扣 Java 101.对称二叉树

给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 提示&#xff1a; 树中节点数目在…

今天刷basic

一 在kali里边链接这个服务器 ssh -p 25199 rootnode4.buuoj.cn 然后回车 yes 输入密码123456 ls查看发现什么都没有&#xff0c;cd ..返回上一级目录 ls 发现有flag.txt 查看文件得到flag flag{477f20d3-acd3-46e1-b50a-633e58b769c7}

什么是 shell 脚本?

一、什么是 shell&#xff1f; Shell 是一个应用程序&#xff0c;它负责接收用户输入的命令&#xff0c;然后根据命令做出相应的动作&#xff0c; Shell 负责将应用层或者用户输入的命令传递给系统内核&#xff0c;由操作系统内核来完成相应的工作&#xff0c;然后将结果反馈给…

几何精度因子(Geometric Dilution Precision ,GDOP)

一、概念介绍 在卫星定位领域&#xff0c;精度衰减因子&#xff08;英语&#xff1a;Dilution of precision&#xff09;是一类衡量用户在进行GNSS测量时所具备的几何条件的定量指标&#xff0c;又简称为DOP值或精度因子。DOP值的大小取决各导航卫星在用户视场中的分布情况&am…

查收查引(通过文献检索开具论文收录或引用的检索证明)

开具论文收录证明的 专业术语为 查收查引&#xff0c;是高校图书馆、情报机构或信息服务机构提供的一项有偿服务。 因检索需要一定的时间&#xff0c;提交委托时请预留足够的检索时间。 一般需要提供&#xff1a;论文题目、作者、期刊名称、发表年代、卷期、页码。 目录 一、查…

逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取

文章目录 一、引言二、逆向爬虫进阶技巧三、逆向爬虫进阶实战代码片段四、总结与展望好书推荐内容简介作者简介前言节选 一、引言 随着网络技术的发展&#xff0c;网站为了保护自己的数据和资源&#xff0c;纷纷采用了各种反爬虫机制。然而&#xff0c;逆向爬虫技术的出现&…

CSS进阶知识点3——定位装饰

一、回顾 网页常见布局方式&#xff1a;标准流、浮动和定位的相互配合。 1.1 标准流 a块级元素独占一行——>垂直布局 b行内元素/行内块元素&#xff08;一行显示多个&#xff09;——>水平布局 1.2 浮动 可以让原本垂直布局的块级元素变成水平布局 1.3 定位 1可以…

Python Collections库的高级功能详解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python的collections库提供了一系列有用的数据类型&#xff0c;扩展了内建的数据类型&#xff0c;为开发者提供了更多高级功能。本文将深入探讨collections库的一些高级功能&#xff0c;通过详细的示例代码演示&…

Multidimensional Scaling(MDS多维缩放)算法及其应用

在这篇博客中&#xff0c;我将与大家分享在流形分析领域的一个非常重要的方法&#xff0c;即多维缩放MDS。整体来说&#xff0c;该方法提供了一种将内蕴距离映射到显性欧氏空间的计算&#xff0c;为非刚性形状分析提供了一种解决方案。当初就是因为读了Bronstein的相关工作【1】…

深信服技术认证“SCSA-S”划重点:XSS漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

DOCBOX dynamiccontent.properties.xhtml RCE漏洞复现

0x01 产品简介 DOCBOX是一款具有恢复保证的文档管理系统,高效、快如闪电、防审核、简单,从模拟切换到数字并使用 DOCBOX 归档您的文档。 0x02 漏洞概述 DOCBOX电子文档管理系统4.2.0版本中dynamiccontent.properties.xhtml接口存在远程代码执行漏洞,未经身份认证的攻击者可…

前端:让一个div悬浮在另一个div之上

使用 CSS 的 position 属性和 z-index 属性 首先&#xff0c;将第二个 div 元素的 position 属性设为 relative 或 absolute。这样可以让该元素成为一个定位元素&#xff0c;使得后代元素可以相对于它进行定位。 然后&#xff0c;将要悬浮的 div 元素的 position 属性设为 ab…

【STM32】STM32学习笔记-课程简介(01)

00. 目录 文章目录 00. 目录01. 课程简介02. 硬件设备03. 软件工具04. 硬件套件4.1 面包板和跳线/飞线4.2 杜邦线和STM32最小系统板4.3 STLINK和OLED显示屏4.4 LED和按键4.5 电位器和蜂鸣器4.6 传感器和旋转编码器4.7 USB转串口和MPU60504.8 Flash闪存和电机模块4.9 SG90舵机 0…

【Java Web学习笔记】3 - JavaScript入门

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/javascript 零、JavaScript引出 JavaScript 教程 官方文档 1. JavaScript能改变HTML内容&#xff0c;能改变HTML属性&#xff0c;能改变HTML样式(CSS),能完成页面的数据验证。 <!DOCTYPE html>…

SM37 Cancel Logon of user DDIC in client 200 failed when starting a step

一、前言 在执行MDGIMG 调整了模型的映射的时候&#xff0c;需要在同一个环境的 不同Client分别创建一个SM37的后台Job&#xff0c;我在执行NWBC的时候报错&#xff0c;发现MDG创建物料的流程用不了&#xff0c;发现是SM37的Job被取消了&#xff0c;报错是 Logon of user DDI…

【一周安全资讯1202】信安标委发布《网络安全标准实践指南—网络安全产品互联互通 告警信息格式》;网络安全纳入注册会计师考试科目

要闻速览 1、信安标委发布《网络安全标准实践指南—网络安全产品互联互通 告警信息格式》 2、南昌某高校学生个人信息在境外公开出售&#xff0c;警方抓获学校"内鬼" 3、网络安全纳入注册会计师考试科目 4、乌克兰情报机构网攻俄罗斯民航局&#xff0c;称俄民航业正…

菜鸟学习日记(python)——条件控制

Python 中的条件语句是通过一条或多条语句的执行结果&#xff08;True 或者 False&#xff09;来决定执行的代码块。 它的一般格式为&#xff1a;if...elif...else if condition1: #条件1CodeBlock1 #代码块1 elif condition2:CodeBlock2 else:CodeBlock3 如果con…

图灵测试:人工智能的终极挑战

图灵测试&#xff1a;人工智能的终极挑战 一、引言 在人工智能的发展历程中&#xff0c;图灵测试一直被视为一个重要的里程碑。这个由英国计算机科学家艾伦图灵提出的实验&#xff0c;旨在评估人工智能是否能够像人一样思考和表达&#xff0c;为人类与机器智能之间的界限设立了…

城市之眼:数据可视化在智慧城市的角色

作为智慧城市建设的核心组成部分&#xff0c;数据可视化扮演着至关重要的角色。在城市中&#xff0c;数据源源不断地产生&#xff0c;涵盖了从交通流量、环境质量到市民需求等各个方面。而数据可视化作为将这些数据呈现出来的手段&#xff0c;对智慧城市的发展起着关键性的作用…