[cast-2-str-vs-str-valueOf] casting vs string.valueOf()

This commit is contained in:
Kai.Yuan 2024-04-16 23:54:01 +02:00
parent 887697da02
commit c0165457b0
1 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,50 @@
package com.baeldung.castingandstringvalueof;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.List;
import org.junit.jupiter.api.Test;
public class CastingToStringVsStringValueOfUnitTest {
@Test
void whenCastingStringAndCallingValueOf_thenCorrect() {
Object obj = "Baedlung is awesome!";
String castResult = (String) obj;
assertEquals("Baedlung is awesome!", castResult);
String valueOfResult = String.valueOf(obj);
assertEquals("Baedlung is awesome!", valueOfResult);
}
@Test
void whenCastingNonStringAndCallingValueOf_thenGetExpectedResult() {
Object obj = 42;
assertThrows(ClassCastException.class, () -> {String castResult = (String) obj;});
String valueOfResult = String.valueOf(obj);
assertEquals("42", valueOfResult);
Object obj2 = List.of("Baeldung", "is", "awesome");
assertThrows(ClassCastException.class, () -> {String castResult = (String) obj2;});
valueOfResult = String.valueOf(obj2);
assertEquals("[Baeldung, is, awesome]", valueOfResult);
}
@Test
void whenObjectIsNullCastingAndCallingValueOf_thenGetExpectedResult() {
Object obj = null;
String castResult = (String) obj;
assertNull(castResult);
String valueOfResult = String.valueOf(obj);
assertNotNull(valueOfResult);
assertEquals("null", valueOfResult);
}
}