찾다
Javajava지도 시간Java에서 valueOf와 toString,(String)의 차이점

실제 자바 프로젝트 개발 및 적용에서는 객체를 문자열로 변환하는 기본 기능을 활용해야 하는 경우가 많습니다. 이 문서에서는 일반적으로 사용되는 변환 방법에 대한 요약을 제공합니다. 일반적으로 사용되는 메소드에는 Object.toString(), (String) 변환할 객체, String.valueOf(Object) 등이 있습니다. 이러한 방법은 아래에서 하나씩 분석됩니다.


방법 1: Object.toString() 메서드 사용은 아래를 참조하세요. 예:
객체 객체 = getObject();
System.out.println(object.toString());

이 사용 방법에서는 java.lang.Object 클래스에 공용 메소드 .toString()이 있으므로 엄밀한 의미에서는 모든 Java 객체에 대해 이 메소드를 호출할 수 있습니다. 그러나 이를 사용할 때 객체는 null 값이 아니어야 합니다. 그렇지 않으면 NullPointerException이 발생합니다. 이 메서드를 사용할 때 일반적으로 파생 클래스는 Object의 toString() 메서드를 재정의합니다.

방법 2: 유형 변환(String) 객체 방법을 사용합니다. 유형 변환. 객체를 문자열 유형 값으로 변환합니다. 이 방법을 사용할 때 유형이 String 유형으로 변환 가능해야 한다는 점에 유의해야 합니다. 따라서 변환 가능 여부를 결정하기 위해 유형 검사를 수행하려면 instanceof를 사용하는 것이 가장 좋습니다. 그렇지 않으면 CalssCastException이 발생하기 쉽습니다. 또한 객체로 정의되어 있으므로 특별한 주의가 필요합니다. 유형의 객체가 문자열로 변환되면 구문 검사는 오류를 보고하지 않으므로 잠재적인 오류가 발생할 수 있습니다. 이때 특히 조심하세요. 예:
Object obj = new Integer(100);
String strVal = (String ) obj;
은 Integer 유형 이 강제로 을 String 유형으로 변환하고 전달할 수 없기 때문에 런타임 시 오류를 발생시킵니다. 그러나
Integer obj = new Integer(100);
String strVal = (String)obj;
형식 코드를 사용하면 문법 오류가 보고됩니다.

또한 null 값은 모든 Java 클래스 유형으로 캐스팅될 수 있으므로 (String)null도 적법합니다.

방법 3: String.valueOf(Object) 사용 String.valueOf(Object)의 기본은 Object.toString()입니다. 하지만 Object#toString()과는 다릅니다. 방법 1의 앞선 분석에서 언급했듯이 후자를 사용할 경우에는 null이 아닌지 확인해야 합니다. 하지만 세 번째 방법을 사용하면 객체가 null 값인지 걱정할 필요가 없습니다. 문제의 설명을 용이하게 하기 위해 관련 소스 코드를 분석해 보겠습니다. Jdk의 String.valueOf(Object) 소스 코드는 다음과 같습니다.
public static String valueOf(Object obj) {
return(obj = = null) ? " null" : obj.toString(); }
위의 소스 코드에서 null 값에 대해 걱정할 필요가 없는 이유를 명확하게 알 수 있습니다. 그러나 이것은 또한 우리에게 숨겨진 위험을 안겨줍니다. object가 null인 경우 String.valueOf(object)의 값은 null이 아니라 문자열 "null"입니다. ! ! 사용 시 주의사항을 꼭 기억해주세요. if(String.valueOf(object)==null){System.out.println("The value pass in null!");}과 같은 문을 사용하면 어떤 문제가 발생할 수 있는지 상상해 보세요. 콘솔에 출력할 때 다음 명령문의 실행 결과에서 시각적인 차이는 무엇인지 다시 생각해 보십시오.

System.out.println(String.valueOf(null ) );//문자열 "null"

System.out.println(null);//빈 값 null입니다
우리가 보는 출력은 완전히 동일합니다. 즉, null이지만 동일한 의미입니까?

관련 추천]

1. java의 valueOf 메소드 예제에 대한 자세한 설명

valueOf,parseInt,toString Java에서

3. valueOf 함수와 toString 메서드에 대한 심층적 이해

객체 변환 함수 소개 toString() 및 valueOf()

5. toString() 메서드를 사용하여 시간을 문자열로 반환합니다

위 내용은 Java에서 valueOf와 toString,(String)의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
华为GT3 Pro和GT4的差异是什么?华为GT3 Pro和GT4的差异是什么?Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

在C语言中,while(1)和while(0)之间的区别是什么?在C语言中,while(1)和while(0)之间的区别是什么?Aug 31, 2023 am 10:45 AM

我们知道在C语言中,'while'关键字用于定义一个循环,该循环根据传递给循环的条件来工作。现在,由于条件可以有两个值,即真或假,所以如果条件为真,则while块内的代码将被重复执行,如果条件为假,则代码将不会被执行。现在,通过将参数传递给while循环,我们可以区分while(1)和while(0),因为while(1)是一个条件始终被视为真的循环,因此块内的代码将开始重复执行。此外,我们可以说明,传递给循环并使条件为真的不是1,而是如果任何非零整数传递给while循环,则它将被视为真条件,因

使用java的String.valueOf()函数将基本数据类型转换为字符串使用java的String.valueOf()函数将基本数据类型转换为字符串Jul 24, 2023 pm 07:55 PM

使用Java的String.valueOf()函数将基本数据类型转换为字符串在Java开发中,当我们需要将基本数据类型转换为字符串时,一种常见的方法是使用String类的valueOf()函数。这个函数可以接受基本数据类型的参数,并返回对应的字符串表示。在本文中,我们将探讨如何使用String.valueOf()函数进行基本数据类型转换,并提供一些代码示例来

win32和win64有什么区别win32和win64有什么区别May 29, 2023 pm 05:22 PM

win32和win64的区别是:1、win32是指Microsoft Windows操作系统的32位环境,win64是指Microsoft Windows操作系统的64位版本,比32位版本更加稳定快速;2、win32最高支持2G的内存,win64必须是4G以上内存;3、win64支持基于64位的处理器,而win32却不能完全支持;4、win32追求简洁,win64追求性能。

使用java的Boolean.valueOf()函数将字符串转换为布尔值使用java的Boolean.valueOf()函数将字符串转换为布尔值Jul 24, 2023 pm 05:15 PM

使用Java的Boolean.valueOf()函数将字符串转换为布尔值在Java编程中,经常会遇到需要将字符串转换为布尔值的情况。而Java提供了一个便捷的方法来实现这一需求,即使用Boolean.valueOf()函数。该函数可以将字符串表示的布尔值转换为对应的布尔类型。下面我们来详细了解一下Boolean.valueOf()的用法。给定一个字符串,我们

在C语言中,结构体(Structure)和数组(Array)之间的区别是什么?在C语言中,结构体(Structure)和数组(Array)之间的区别是什么?Aug 30, 2023 pm 09:37 PM

在C中,结构体和数组都用作数据类型的容器,即在结构体和数组中我们都可以存储数据,也可以对它们执行不同的操作。基于内部实现,以下是两者之间存在一些基本差异。Sr.编号键结构数组1定义结构体可以定义为一种数据结构,用作容器,可以容纳不同类型的变量。另一方面,数组是一种用作容器的数据结构,可以容纳相同类型的变量,但不支持多种数据类型变量。2内存分配输入数据的内存分配结构不必位于连续的内存位置。而在数组的情况下,输入数据存储在连续的内存分配中,这意味着数组将数据存储在分配连续内存块的内存模型中(即,具有

Vue3和Vue2的区别:更丰富的生命周期钩子Vue3和Vue2的区别:更丰富的生命周期钩子Jul 08, 2023 pm 05:19 PM

Vue3和Vue2的区别:更丰富的生命周期钩子Vue是一种流行的JavaScript框架,用于构建交互式的Web应用程序。Vue2是Vue.js的稳定版本,而Vue3是Vue.js的最新版本。Vue3带来了许多改进,其中之一是更丰富的生命周期钩子。本文将介绍Vue3和Vue2生命周期钩子的区别,并通过代码示例进行演示。Vue2的生命周期钩子在Vue2中,我们

JavaScript和PHP的cookie之间有哪些区别?JavaScript和PHP的cookie之间有哪些区别?Sep 02, 2023 pm 12:29 PM

JavaScriptCookie使用JavaScriptcookie是记住和跟踪偏好、购买、佣金和其他信息的最有效方法。更好的访问者体验或网站统计所需的信息。PHPCookieCookie是存储在客户端计算机上的文本文件并保留它们用于跟踪目的。PHP透明地支持HTTPcookie。JavaScriptcookie如何工作?您的服务器将一些数据发送到访问者的浏览器cookie的形式。浏览器可以接受cookie。如果存在,它将作为纯文本记录存储在访问者的硬盘上。现在,当访问者到达站点上的另一个页面时

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전