toString()、String.valueOf、(String)强转,有什么区别?

简介: 我是小假 期待与你的下一次相遇 ~

 目录

一、代码实例

1、基本类型

2、封装类型

3、null值问题

(1)toString()报空指针异常

(2)String.valueOf()返回字符串“null”

(3)null值强转成功

二、源码分析

1、toString()

2、String.valueOf()

三、总结

1、toString(),可能会抛空指针异常

2、String.valueOf(),推荐使用,返回字符串“null”

3、(String)强转,不推荐使用


一、代码实例

1、基本类型

(1)基本类型没有toString()方法

image.gif 编辑

(2)推荐使用

image.gif 编辑

(3)无法强转

 

image.gif 编辑

(String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCastException异常。需要注意的是编写的时候,编译器并不会提示有语法错误,所以这个方法要谨慎的使用。

 

image.gif 编辑

instanceof判断

 

image.gif 编辑

2、封装类型

(1)toString ok

 

image.gif 编辑

(2)String.valueOf()

自然也是可以的。

(3)封装类型也无法强转

 

image.gif 编辑

3、null值问题

(1)toString()报空指针异常

image.gif 编辑

(2)String.valueOf()返回字符串“null”

image.gif 编辑

(3)null值强转成功

image.gif 编辑

二、源码分析

1、toString()

image.gif 编辑

image.gif 编辑

2、String.valueOf()

image.gif 编辑

String.valueOf()toString多了一个非空判断。

三、总结

1、toString(),可能会抛空指针异常

在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

2、String.valueOf(),推荐使用,返回字符串“null”

String.valueOf()方法是推荐使用的,因为它不会出现空指针异常,而且是静态的方法,直接通过String调用即可,只是有一点需要注意,就是上面提到的,如果为null,String.valueOf()返回结果是字符串“null”。而不是null。

3、(String)强转,不推荐使用

(String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCastException异常。需要注意的是编写的时候,编译器并不会提示有语法错误,所以这个方法要谨慎的使用。

如果小假的内容对你有帮助,请点赞评论收藏。创作不易,大家的支持就是我坚持下去的动力!

image.gif 编辑

相关文章
|
5天前
|
数据采集 监控 数据挖掘
企业如何用Data Agent实现数据价值效率的飞跃
在数字化转型背景下,数据被视为“新时代的石油”,但多数企业仍面临数据价值难以高效挖掘的困境。文章深入剖析了当前数据分析中存在的“被动响应”模式及其带来的四大挑战,并提出通过Data Agent实现主动智能与数据分析民主化的新路径。Data Agent基于大语言模型和强化学习技术,具备理解、思考与行动能力,能够从“人找数据”转变为“数据找人”,推动数据洞察从专业人员走向全员参与。
|
8天前
|
人工智能 数据安全/隐私保护 C++
一键解除机器码工具,电脑机器码修改工具,永久修改机器码工具【c++】
有时候我们用一些工具的时候发现经常会被限制,尤其是AI编程工具,最喜欢限制人的机器码,但是我们又
|
12天前
|
编解码 物联网 开发者
FLUX.1 Kontext 的全生态教程来啦!AIGC专区在线试玩!
Flux.1 Kontext [dev] 开源模型大家都用上了吗?小编汇总了3个使用教程,打包送上!
603 1
|
11天前
|
人工智能 NoSQL Java
LangChain4j 项目概览
LangChain4j 是一个专为 Java 开发者设计的大语言模型 (LLM) 集成框架,旨在简化 Java 应用程序与各种 LLM 提供商的集成过程。该项目受到 Python 的 LangChain、Haystack、LlamaIndex 等框架的启发,为 Java 生态系统提供了强大而统一的 LLM 工具链。
337 7
|
9天前
|
测试技术 开发工具 git
基于WebSocket即时通讯im源码| uniapp即时通讯源码| 私有化部署SDK视频安装教程
本项目是基于 ThinkPHP7 和 Swoole 构建的即时通讯 IM 源码,打造了一个简洁美观、移动优先的渐进式 Web 应用。支持从源码构建,并提供详细的安装、配置与使用说明。仓库地址:im.jstxym.top。
|
10天前
|
消息中间件 供应链 前端开发
如何开发进销存系统中的库存管理板块?(附架构图+流程图+代码参考)
进销存系统中的库存管理是企业运营关键环节,影响效率、资金周转与物流成本。本文详解库存管理概念、模块结构、业务流程及开发技巧,通过示例代码展示入库、出库等功能实现,助力企业优化库存管理,提升运作效率。
|
8天前
|
运维 监控 数据可视化
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
29 4
|
8天前
|
数据可视化 IDE Java
OneCode图生代码技术深度解析:从可视化设计到注解驱动实现的全链路架构
OneCode图生代码技术通过可视化设计与Java注解驱动,实现UI到代码的高效转换,支持设计即开发、组件复用与动态加载,提升企业应用开发效率与协作能力。
OneCode图生代码技术深度解析:从可视化设计到注解驱动实现的全链路架构
|
8天前
|
供应链 数据挖掘 API
1688商品详情API全字段解析:从基础参数到SKU深度挖掘
1688商品详情API为开发者提供高效获取商品信息的官方通道,支持自动化获取标题、价格、库存等核心数据,适用于电商开发、数据分析及供应链管理。接口支持灵活参数配置,并提供Python调用示例,便于快速集成与应用。
|
8天前
|
监控 算法 数据处理
Python 3.14七大新特性总结:从t-string模板到GIL并发优化
本文基于当前最新的beta 2版本,深入分析了Python 3.14中的七项核心新特性。
32 4
Python 3.14七大新特性总结:从t-string模板到GIL并发优化