{"id":2209,"date":"2024-11-15T08:05:39","date_gmt":"2024-11-15T08:05:39","guid":{"rendered":"https:\/\/www.w3computing.com\/articles\/?p=2209"},"modified":"2024-11-15T08:05:42","modified_gmt":"2024-11-15T08:05:42","slug":"how-to-convert-between-different-data-types-in-java","status":"publish","type":"post","link":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/","title":{"rendered":"How to Convert Between Different Data Types in Java"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Converting between different data types is an essential skill in Java programming, allowing you to manipulate and transform data based on requirements. Java is a strongly typed language, which means every variable and expression has a specific data type, making type conversion both necessary and intricate. This tutorial will walk you through the various types of conversions in Java, focusing on the &#8220;what,&#8221; &#8220;why,&#8221; and &#8220;how&#8221; of each step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will cover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Primitive Type Conversions<\/li>\n\n\n\n<li>Wrapper Class Conversions<\/li>\n\n\n\n<li>Conversion between Numeric Types<\/li>\n\n\n\n<li>String Conversions<\/li>\n\n\n\n<li>Working with Collections and Generics<\/li>\n\n\n\n<li>Casting and the <code>instanceof<\/code> Operator<\/li>\n\n\n\n<li>Custom Conversion Techniques<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Each section will provide examples and explanations for different scenarios, from basic to advanced, ensuring you get a comprehensive understanding of Java type conversion.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Primitive Type Conversions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Java\u2019s primitive data types are the most basic data types and include <code>int<\/code>, <code>double<\/code>, <code>float<\/code>, <code>boolean<\/code>, <code>char<\/code>, <code>byte<\/code>, <code>short<\/code>, and <code>long<\/code>. Understanding how to convert between them is fundamental, especially when working with operations that may require different types to interact.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implicit (Widening) Conversion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Widening conversion, also known as implicit conversion, happens automatically when a smaller type is assigned to a larger type. For example, assigning an <code>int<\/code> to a <code>double<\/code> variable doesn&#8217;t require any additional code because Java knows the <code>int<\/code> can fit into the <code>double<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">int<\/span> intValue = <span class=\"hljs-number\">10<\/span>;\n<span class=\"hljs-keyword\">double<\/span> doubleValue = intValue; <span class=\"hljs-comment\">\/\/ Implicit conversion from int to double<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Double value: \"<\/span> + doubleValue); <span class=\"hljs-comment\">\/\/ Output: 10.0<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Java performs this conversion implicitly because it\u2019s a safe operation where no data will be lost.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Explicit (Narrowing) Conversion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Narrowing conversion, or explicit casting, is when you convert a larger type to a smaller type, like from <code>double<\/code> to <code>int<\/code>. This requires a cast because there\u2019s a possibility of data loss (e.g., losing decimal values when converting from <code>double<\/code> to <code>int<\/code>).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">double<\/span> doubleValue = <span class=\"hljs-number\">9.99<\/span>;\n<span class=\"hljs-keyword\">int<\/span> intValue = (<span class=\"hljs-keyword\">int<\/span>) doubleValue; <span class=\"hljs-comment\">\/\/ Explicit conversion from double to int<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Int value: \"<\/span> + intValue); <span class=\"hljs-comment\">\/\/ Output: 9<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Here, <code>(int)<\/code> is used as a cast to force Java to convert the <code>double<\/code> to an <code>int<\/code>. The result is <code>9<\/code> because the cast truncates the decimal part.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Common Primitive Type Conversions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s look at some common scenarios where type conversion might be necessary:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Converting <code>char<\/code> to <code>int<\/code>:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Characters in Java are represented by their Unicode values, so you can convert a <code>char<\/code> to an <code>int<\/code> to get its Unicode number.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">char<\/span> letter = <span class=\"hljs-string\">'A'<\/span>;\n<span class=\"hljs-keyword\">int<\/span> asciiValue = (<span class=\"hljs-keyword\">int<\/span>) letter;\nSystem.out.println(<span class=\"hljs-string\">\"ASCII value of A: \"<\/span> + asciiValue); <span class=\"hljs-comment\">\/\/ Output: 65<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Converting <code>int<\/code> to <code>byte<\/code>:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When converting an <code>int<\/code> to a <code>byte<\/code>, be aware that <code>byte<\/code> can only hold values from -128 to 127. Converting a larger <code>int<\/code> outside this range will wrap around.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">int<\/span> num = <span class=\"hljs-number\">150<\/span>;\n<span class=\"hljs-keyword\">byte<\/span> byteValue = (<span class=\"hljs-keyword\">byte<\/span>) num;\nSystem.out.println(<span class=\"hljs-string\">\"Byte value: \"<\/span> + byteValue); <span class=\"hljs-comment\">\/\/ Output may vary due to overflow<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Converting <code>int<\/code> to <code>float<\/code> and <code>double<\/code>:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Since <code>float<\/code> and <code>double<\/code> are larger than <code>int<\/code>, the conversion is implicit.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">int<\/span> intValue = <span class=\"hljs-number\">25<\/span>;\n<span class=\"hljs-keyword\">float<\/span> floatValue = intValue;\n<span class=\"hljs-keyword\">double<\/span> doubleValue = intValue;\nSystem.out.println(<span class=\"hljs-string\">\"Float value: \"<\/span> + floatValue); <span class=\"hljs-comment\">\/\/ Output: 25.0<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Double value: \"<\/span> + doubleValue); <span class=\"hljs-comment\">\/\/ Output: 25.0<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">2. Wrapper Class Conversions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Java provides wrapper classes for all primitive data types (<code>Integer<\/code>, <code>Double<\/code>, <code>Character<\/code>, etc.) to allow primitives to be used as objects. Converting between wrapper classes and primitives is also known as autoboxing (automatic conversion from primitive to wrapper) and unboxing (conversion from wrapper back to primitive).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Autoboxing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Autoboxing automatically converts a primitive type to its corresponding wrapper type. For instance:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">int<\/span> intValue = <span class=\"hljs-number\">5<\/span>;\nInteger integerValue = intValue; <span class=\"hljs-comment\">\/\/ Autoboxing<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Integer value: \"<\/span> + integerValue);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Unboxing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unboxing is the reverse of autoboxing, converting a wrapper class back to a primitive.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">Integer integerValue = <span class=\"hljs-number\">10<\/span>;\n<span class=\"hljs-keyword\">int<\/span> intValue = integerValue; <span class=\"hljs-comment\">\/\/ Unboxing<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Int value: \"<\/span> + intValue);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Wrapper Class Methods for Conversion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wrapper classes provide useful methods for conversions between different types. For instance:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Integer.parseInt(String s)<\/code>: Converts a <code>String<\/code> to an <code>int<\/code>.<\/li>\n\n\n\n<li><code>Double.valueOf(String s)<\/code>: Converts a <code>String<\/code> to a <code>Double<\/code>.<\/li>\n\n\n\n<li><code>Character.isDigit(char c)<\/code>: Checks if a <code>char<\/code> is a digit.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">String number = <span class=\"hljs-string\">\"123\"<\/span>;\n<span class=\"hljs-keyword\">int<\/span> intValue = Integer.parseInt(number);\nSystem.out.println(<span class=\"hljs-string\">\"Parsed int: \"<\/span> + intValue); <span class=\"hljs-comment\">\/\/ Output: 123<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">3. Converting Between Numeric Types<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Java has built-in support for numeric conversions across different types (e.g., <code>int<\/code>, <code>double<\/code>, <code>float<\/code>, etc.).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Converting <code>double<\/code> to <code>float<\/code>, <code>long<\/code>, and <code>int<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When converting a <code>double<\/code> to <code>float<\/code>, <code>long<\/code>, or <code>int<\/code>, a cast is required to handle potential loss of precision.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">double<\/span> doubleValue = <span class=\"hljs-number\">9.99<\/span>;\n<span class=\"hljs-keyword\">float<\/span> floatValue = (<span class=\"hljs-keyword\">float<\/span>) doubleValue;\n<span class=\"hljs-keyword\">long<\/span> longValue = (<span class=\"hljs-keyword\">long<\/span>) doubleValue;\n<span class=\"hljs-keyword\">int<\/span> intValue = (<span class=\"hljs-keyword\">int<\/span>) doubleValue;\n\nSystem.out.println(<span class=\"hljs-string\">\"Float value: \"<\/span> + floatValue); <span class=\"hljs-comment\">\/\/ Output: 9.99<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Long value: \"<\/span> + longValue);   <span class=\"hljs-comment\">\/\/ Output: 9<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Int value: \"<\/span> + intValue);     <span class=\"hljs-comment\">\/\/ Output: 9<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Converting <code>float<\/code> to <code>int<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A <code>float<\/code> to <code>int<\/code> conversion is straightforward but requires casting.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">float<\/span> floatValue = <span class=\"hljs-number\">7.77f<\/span>;\n<span class=\"hljs-keyword\">int<\/span> intValue = (<span class=\"hljs-keyword\">int<\/span>) floatValue;\nSystem.out.println(<span class=\"hljs-string\">\"Int value: \"<\/span> + intValue); <span class=\"hljs-comment\">\/\/ Output: 7<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">4. String Conversions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">String conversions are among the most commonly used type conversions in Java, as many data types need to be displayed as text.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Converting from Primitive or Wrapper to String<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The simplest way to convert a value to a <code>String<\/code> is by concatenating it with an empty <code>String<\/code> or using <code>String.valueOf<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">int<\/span> intValue = <span class=\"hljs-number\">42<\/span>;\nString stringValue = <span class=\"hljs-string\">\"\"<\/span> + intValue;\nSystem.out.println(<span class=\"hljs-string\">\"String value: \"<\/span> + stringValue); <span class=\"hljs-comment\">\/\/ Output: \"42\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Alternatively, you can use the <code>String.valueOf<\/code> method:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">double<\/span> doubleValue = <span class=\"hljs-number\">4.56<\/span>;\nString stringValue = String.valueOf(doubleValue);\nSystem.out.println(<span class=\"hljs-string\">\"String value: \"<\/span> + stringValue); <span class=\"hljs-comment\">\/\/ Output: \"4.56\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Converting from String to Primitive or Wrapper<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Each wrapper class has a method to parse <code>String<\/code> values back to the respective primitive.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">String numberString = <span class=\"hljs-string\">\"123\"<\/span>;\n<span class=\"hljs-keyword\">int<\/span> intValue = Integer.parseInt(numberString);\n<span class=\"hljs-keyword\">double<\/span> doubleValue = Double.parseDouble(numberString);\n\nSystem.out.println(<span class=\"hljs-string\">\"Int value: \"<\/span> + intValue);   <span class=\"hljs-comment\">\/\/ Output: 123<\/span>\nSystem.out.println(<span class=\"hljs-string\">\"Double value: \"<\/span> + doubleValue); <span class=\"hljs-comment\">\/\/ Output: 123.0<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">5. Working with Collections and Generics<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Collections in Java (like <code>ArrayList<\/code>, <code>HashMap<\/code>) store objects, and generics provide type safety. Converting between data types within collections can sometimes be challenging.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Converting Collections of Wrapper Types to Primitive Arrays<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java provides several methods in the <code>Stream<\/code> and <code>Collections<\/code> API to convert between collections and arrays.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">List&lt;Integer&gt; integerList = Arrays.asList(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>);\n<span class=\"hljs-keyword\">int<\/span>&#91;] intArray = integerList.stream().mapToInt(Integer::intValue).toArray();\n\nSystem.out.println(<span class=\"hljs-string\">\"Array length: \"<\/span> + intArray.length);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Converting Array of Primitives to Collection of Wrappers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can use the <code>Arrays.asList<\/code> method with <code>Integer[]<\/code> to convert an array of wrapper objects into a collection.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">int<\/span>&#91;] intArray = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>};\nList&lt;Integer&gt; integerList = Arrays.stream(intArray).boxed().collect(Collectors.toList());\n\nSystem.out.println(<span class=\"hljs-string\">\"List size: \"<\/span> + integerList.size());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">6. Casting and the <code>instanceof<\/code> Operator<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Casting is useful when working with inheritance and polymorphism. To avoid <code>ClassCastException<\/code>, use the <code>instanceof<\/code> operator to check the object&#8217;s type before casting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example of Casting with <code>instanceof<\/code><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\">Object obj = <span class=\"hljs-string\">\"Hello, World!\"<\/span>;\n<span class=\"hljs-keyword\">if<\/span> (obj <span class=\"hljs-keyword\">instanceof<\/span> String) {\n    String str = (String) obj;\n    System.out.println(<span class=\"hljs-string\">\"String value: \"<\/span> + str); <span class=\"hljs-comment\">\/\/ Output: \"Hello, World!\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The <code>instanceof<\/code> operator checks if <code>obj<\/code> is an instance of <code>String<\/code>, allowing a safe cast.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Custom Conversion Techniques<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There may be cases where you need to create custom converters. For instance, you might need to convert between complex types that Java doesn\u2019t handle by default.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example of a Custom Conversion Class<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s an example of a custom<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">converter that converts an <code>Employee<\/code> object to a <code>String<\/code> and vice versa.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Employee<\/span> <\/span>{\n    String name;\n    <span class=\"hljs-keyword\">int<\/span> id;\n\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title\">Employee<\/span><span class=\"hljs-params\">(String name, <span class=\"hljs-keyword\">int<\/span> id)<\/span> <\/span>{\n        <span class=\"hljs-keyword\">this<\/span>.name = name;\n        <span class=\"hljs-keyword\">this<\/span>.id = id;\n    }\n\n    <span class=\"hljs-meta\">@Override<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title\">toString<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> id + <span class=\"hljs-string\">\":\"<\/span> + name;\n    }\n\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> Employee <span class=\"hljs-title\">fromString<\/span><span class=\"hljs-params\">(String str)<\/span> <\/span>{\n        String&#91;] parts = str.split(<span class=\"hljs-string\">\":\"<\/span>);\n        <span class=\"hljs-keyword\">int<\/span> id = Integer.parseInt(parts&#91;<span class=\"hljs-number\">0<\/span>]);\n        String name = parts&#91;<span class=\"hljs-number\">1<\/span>];\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> Employee(name, id);\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">You can use <code>Employee.toString()<\/code> for the conversion to <code>String<\/code> and <code>Employee.fromString(String)<\/code> to create an <code>Employee<\/code> from a <code>String<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">This tutorial covered different types of conversions in Java, from simple primitive conversions to more complex scenarios involving collections and custom objects. With a thorough understanding of these concepts, you\u2019ll be able to navigate Java\u2019s strongly-typed system more effectively, adapting your code to the diverse data needs of applications. Remember to be cautious with narrowing conversions to avoid data loss, and always check the types using <code>instanceof<\/code> when casting between objects in inheritance hierarchies.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Exercise: Employee Management System<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You are tasked with creating a basic employee management system. This system should allow the following functionalities:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Store Employee Records<\/strong>: Each <code>Employee<\/code> object should store the employee&#8217;s name, ID (integer), and salary (double).<\/li>\n\n\n\n<li><strong>Convert Employee Data to String Format<\/strong>: The system should allow converting <code>Employee<\/code> objects into a <code>String<\/code> format and parsing them back into <code>Employee<\/code> objects. The string format should look like <code>\"ID:Name:Salary\"<\/code>.<\/li>\n\n\n\n<li><strong>Calculate Total Salary and Average Salary<\/strong>: Implement methods to calculate the total salary and the average salary of all employees.<\/li>\n\n\n\n<li><strong>Filter High-Earning Employees<\/strong>: Implement a method that filters and returns employees earning above a specified salary threshold.<\/li>\n\n\n\n<li><strong>Type Safety with Generics<\/strong>: Use generics and collections to store and manipulate the <code>Employee<\/code> data.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Solution<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s build this system step-by-step, implementing each functionality as required.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: Define the Employee Class<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">First, we define an <code>Employee<\/code> class with a constructor and methods to convert an <code>Employee<\/code> object to a <code>String<\/code> and to parse an <code>Employee<\/code> from a <code>String<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">import<\/span> java.util.ArrayList;\n<span class=\"hljs-keyword\">import<\/span> java.util.List;\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Employee<\/span> <\/span>{\n    <span class=\"hljs-keyword\">private<\/span> String name;\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">int<\/span> id;\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">double<\/span> salary;\n\n    <span class=\"hljs-comment\">\/\/ Constructor<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title\">Employee<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">int<\/span> id, String name, <span class=\"hljs-keyword\">double<\/span> salary)<\/span> <\/span>{\n        <span class=\"hljs-keyword\">this<\/span>.id = id;\n        <span class=\"hljs-keyword\">this<\/span>.name = name;\n        <span class=\"hljs-keyword\">this<\/span>.salary = salary;\n    }\n\n    <span class=\"hljs-comment\">\/\/ Convert Employee to String in \"ID:Name:Salary\" format<\/span>\n    <span class=\"hljs-meta\">@Override<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title\">toString<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> id + <span class=\"hljs-string\">\":\"<\/span> + name + <span class=\"hljs-string\">\":\"<\/span> + salary;\n    }\n\n    <span class=\"hljs-comment\">\/\/ Parse Employee from String format \"ID:Name:Salary\"<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> Employee <span class=\"hljs-title\">fromString<\/span><span class=\"hljs-params\">(String employeeString)<\/span> <\/span>{\n        String&#91;] parts = employeeString.split(<span class=\"hljs-string\">\":\"<\/span>);\n        <span class=\"hljs-keyword\">int<\/span> id = Integer.parseInt(parts&#91;<span class=\"hljs-number\">0<\/span>]);\n        String name = parts&#91;<span class=\"hljs-number\">1<\/span>];\n        <span class=\"hljs-keyword\">double<\/span> salary = Double.parseDouble(parts&#91;<span class=\"hljs-number\">2<\/span>]);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> Employee(id, name, salary);\n    }\n\n    <span class=\"hljs-comment\">\/\/ Getters<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">getId<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> id;\n    }\n\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title\">getName<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> name;\n    }\n\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">getSalary<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">return<\/span> salary;\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In this class:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <code>toString()<\/code> method converts an <code>Employee<\/code> to a <code>String<\/code> format.<\/li>\n\n\n\n<li>The <code>fromString()<\/code> method takes a <code>String<\/code> and parses it back into an <code>Employee<\/code> object.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Employee Management Functions<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Now, we\u2019ll create an <code>EmployeeManagement<\/code> class that uses a collection (like an <code>ArrayList<\/code>) to manage <code>Employee<\/code> objects. This class will implement methods for storing, calculating total and average salary, and filtering high earners.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">EmployeeManagement<\/span> <\/span>{\n    <span class=\"hljs-keyword\">private<\/span> List&lt;Employee&gt; employees;\n\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title\">EmployeeManagement<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">this<\/span>.employees = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\n    }\n\n    <span class=\"hljs-comment\">\/\/ Add an employee to the list<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">addEmployee<\/span><span class=\"hljs-params\">(Employee employee)<\/span> <\/span>{\n        employees.add(employee);\n    }\n\n    <span class=\"hljs-comment\">\/\/ Calculate total salary of all employees<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">calculateTotalSalary<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">double<\/span> totalSalary = <span class=\"hljs-number\">0<\/span>;\n        <span class=\"hljs-keyword\">for<\/span> (Employee emp : employees) {\n            totalSalary += emp.getSalary();\n        }\n        <span class=\"hljs-keyword\">return<\/span> totalSalary;\n    }\n\n    <span class=\"hljs-comment\">\/\/ Calculate average salary of all employees<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">calculateAverageSalary<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">if<\/span> (employees.isEmpty()) <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n        <span class=\"hljs-keyword\">return<\/span> calculateTotalSalary() \/ employees.size();\n    }\n\n    <span class=\"hljs-comment\">\/\/ Filter employees by salary threshold<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> List&lt;Employee&gt; <span class=\"hljs-title\">filterHighEarners<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">double<\/span> salaryThreshold)<\/span> <\/span>{\n        List&lt;Employee&gt; highEarners = <span class=\"hljs-keyword\">new<\/span> ArrayList&lt;&gt;();\n        <span class=\"hljs-keyword\">for<\/span> (Employee emp : employees) {\n            <span class=\"hljs-keyword\">if<\/span> (emp.getSalary() &gt; salaryThreshold) {\n                highEarners.add(emp);\n            }\n        }\n        <span class=\"hljs-keyword\">return<\/span> highEarners;\n    }\n\n    <span class=\"hljs-comment\">\/\/ Print all employees<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">printAllEmployees<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n        <span class=\"hljs-keyword\">for<\/span> (Employee emp : employees) {\n            System.out.println(emp);\n        }\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Step 3: Testing the Employee Management System<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let\u2019s use this system. We will add some <code>Employee<\/code> objects, calculate the total and average salary, filter high earners, and print the results.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"Java\" data-shcb-language-slug=\"java\"><span><code class=\"hljs language-java\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Main<\/span> <\/span>{\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">(String&#91;] args)<\/span> <\/span>{\n        <span class=\"hljs-comment\">\/\/ Create an instance of EmployeeManagement<\/span>\n        EmployeeManagement empManager = <span class=\"hljs-keyword\">new<\/span> EmployeeManagement();\n\n        <span class=\"hljs-comment\">\/\/ Add employees using both constructor and parsing from a String<\/span>\n        empManager.addEmployee(<span class=\"hljs-keyword\">new<\/span> Employee(<span class=\"hljs-number\">101<\/span>, <span class=\"hljs-string\">\"Alice\"<\/span>, <span class=\"hljs-number\">75000.50<\/span>));\n        empManager.addEmployee(<span class=\"hljs-keyword\">new<\/span> Employee(<span class=\"hljs-number\">102<\/span>, <span class=\"hljs-string\">\"Bob\"<\/span>, <span class=\"hljs-number\">58000.75<\/span>));\n        empManager.addEmployee(<span class=\"hljs-keyword\">new<\/span> Employee(<span class=\"hljs-number\">103<\/span>, <span class=\"hljs-string\">\"Charlie\"<\/span>, <span class=\"hljs-number\">120000.00<\/span>));\n\n        <span class=\"hljs-comment\">\/\/ Add employee by parsing a String<\/span>\n        Employee parsedEmployee = Employee.fromString(<span class=\"hljs-string\">\"104:David:67000.25\"<\/span>);\n        empManager.addEmployee(parsedEmployee);\n\n        <span class=\"hljs-comment\">\/\/ Print all employees<\/span>\n        System.out.println(<span class=\"hljs-string\">\"All Employees:\"<\/span>);\n        empManager.printAllEmployees();\n\n        <span class=\"hljs-comment\">\/\/ Calculate and print total salary<\/span>\n        <span class=\"hljs-keyword\">double<\/span> totalSalary = empManager.calculateTotalSalary();\n        System.out.println(<span class=\"hljs-string\">\"\\nTotal Salary: $\"<\/span> + totalSalary);\n\n        <span class=\"hljs-comment\">\/\/ Calculate and print average salary<\/span>\n        <span class=\"hljs-keyword\">double<\/span> averageSalary = empManager.calculateAverageSalary();\n        System.out.println(<span class=\"hljs-string\">\"Average Salary: $\"<\/span> + averageSalary);\n\n        <span class=\"hljs-comment\">\/\/ Filter and print high earners with a salary above 70000<\/span>\n        System.out.println(<span class=\"hljs-string\">\"\\nEmployees earning above $70000:\"<\/span>);\n        List&lt;Employee&gt; highEarners = empManager.filterHighEarners(<span class=\"hljs-number\">70000<\/span>);\n        <span class=\"hljs-keyword\">for<\/span> (Employee highEarner : highEarners) {\n            System.out.println(highEarner);\n        }\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Java<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">java<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Explanation of Each Part<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Adding Employees<\/strong>: We add employees both directly using the constructor and indirectly by parsing from a <code>String<\/code>. This demonstrates data conversion between <code>String<\/code> and <code>Employee<\/code>.<\/li>\n\n\n\n<li><strong>Calculating Total and Average Salary<\/strong>: We iterate over the <code>employees<\/code> list to sum their salaries, demonstrating numerical conversions. If the <code>employees<\/code> list is empty, the average salary returns zero to avoid division by zero errors.<\/li>\n\n\n\n<li><strong>Filtering High Earners<\/strong>: We filter employees by a salary threshold using a simple loop. This example shows how to work with collections and return a filtered list based on certain criteria.<\/li>\n\n\n\n<li><strong>Printing Employees<\/strong>: The <code>printAllEmployees<\/code> method demonstrates converting an <code>Employee<\/code> to a <code>String<\/code> using the <code>toString()<\/code> method. Each employee\u2019s details are printed in the specified format.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Sample Output<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">All Employees:\n101:Alice:75000.5\n102:Bob:58000.75\n103:Charlie:120000.0\n104:David:67000.25\n\nTotal Salary: $320001.5\nAverage Salary: $80000.375\n\nEmployees earning above $70000:\n101:Alice:75000.5\n103:Charlie:120000.0<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Summary of Key Concepts Applied<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Primitive and Wrapper Conversions<\/strong>: Used in the <code>Employee<\/code> class when parsing data from <code>String<\/code> to <code>int<\/code> and <code>double<\/code>.<\/li>\n\n\n\n<li><strong>String Conversion and Parsing<\/strong>: Converting <code>Employee<\/code> objects to <code>String<\/code> and parsing <code>String<\/code> back into <code>Employee<\/code>.<\/li>\n\n\n\n<li><strong>Collection Manipulation with Generics<\/strong>: Using <code>ArrayList&lt;Employee&gt;<\/code> to manage a collection of employees.<\/li>\n\n\n\n<li><strong>Custom Conversion Methods<\/strong>: Implemented <code>toString()<\/code> and <code>fromString()<\/code> in the <code>Employee<\/code> class for custom object conversion.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">This exercise provides a real-world example of working with various types in Java, including primitives, objects, and collections, while using conversions and type safety to create an efficient and maintainable employee management system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Converting between different data types is an essential skill in Java programming, allowing you to manipulate and transform data based on requirements. Java is a strongly typed language, which means every variable and expression has a specific data type, making type conversion both necessary and intricate. This tutorial will walk you through the various types [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5,4],"tags":[],"class_list":["post-2209","post","type-post","status-publish","format-standard","category-java","category-programming-languages","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Convert Between Different Data Types in Java<\/title>\n<meta name=\"description\" content=\"This tutorial will walk you through the various types of conversions in Java, focusing on the &quot;what,&quot; &quot;why,&quot; and &quot;how&quot; of each step\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Convert Between Different Data Types in Java\" \/>\n<meta property=\"og:description\" content=\"This tutorial will walk you through the various types of conversions in Java, focusing on the &quot;what,&quot; &quot;why,&quot; and &quot;how&quot; of each step\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-15T08:05:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-15T08:05:42+00:00\" \/>\n<meta name=\"author\" content=\"w3compadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"w3compadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/\"},\"author\":{\"name\":\"w3compadmin\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"headline\":\"How to Convert Between Different Data Types in Java\",\"datePublished\":\"2024-11-15T08:05:39+00:00\",\"dateModified\":\"2024-11-15T08:05:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/\"},\"wordCount\":1294,\"articleSection\":[\"Java\",\"Programming Languages\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/\",\"name\":\"How to Convert Between Different Data Types in Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\"},\"datePublished\":\"2024-11-15T08:05:39+00:00\",\"dateModified\":\"2024-11-15T08:05:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"description\":\"This tutorial will walk you through the various types of conversions in Java, focusing on the \\\"what,\\\" \\\"why,\\\" and \\\"how\\\" of each step\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-convert-between-different-data-types-in-java\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Articles Home\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programming Languages\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/programming-languages\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Convert Between Different Data Types in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\",\"name\":\"Developer Articles Hub\",\"description\":\"\",\"alternateName\":\"Developer Articles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\",\"name\":\"w3compadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"contentUrl\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"caption\":\"w3compadmin\"},\"sameAs\":[\"http:\\\/\\\/w3computing.com\\\/articles\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Convert Between Different Data Types in Java","description":"This tutorial will walk you through the various types of conversions in Java, focusing on the \"what,\" \"why,\" and \"how\" of each step","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to Convert Between Different Data Types in Java","og_description":"This tutorial will walk you through the various types of conversions in Java, focusing on the \"what,\" \"why,\" and \"how\" of each step","og_url":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/","article_published_time":"2024-11-15T08:05:39+00:00","article_modified_time":"2024-11-15T08:05:42+00:00","author":"w3compadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"w3compadmin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/#article","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/"},"author":{"name":"w3compadmin","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"headline":"How to Convert Between Different Data Types in Java","datePublished":"2024-11-15T08:05:39+00:00","dateModified":"2024-11-15T08:05:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/"},"wordCount":1294,"articleSection":["Java","Programming Languages"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/","url":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/","name":"How to Convert Between Different Data Types in Java","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/#website"},"datePublished":"2024-11-15T08:05:39+00:00","dateModified":"2024-11-15T08:05:42+00:00","author":{"@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"description":"This tutorial will walk you through the various types of conversions in Java, focusing on the \"what,\" \"why,\" and \"how\" of each step","breadcrumb":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.w3computing.com\/articles\/how-to-convert-between-different-data-types-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Articles Home","item":"https:\/\/www.w3computing.com\/articles\/"},{"@type":"ListItem","position":2,"name":"Programming Languages","item":"https:\/\/www.w3computing.com\/articles\/programming-languages\/"},{"@type":"ListItem","position":3,"name":"How to Convert Between Different Data Types in Java"}]},{"@type":"WebSite","@id":"https:\/\/www.w3computing.com\/articles\/#website","url":"https:\/\/www.w3computing.com\/articles\/","name":"Developer Articles Hub","description":"","alternateName":"Developer Articles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.w3computing.com\/articles\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561","name":"w3compadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","url":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","contentUrl":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","caption":"w3compadmin"},"sameAs":["http:\/\/w3computing.com\/articles"]}]}},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"w3compadmin","author_link":"https:\/\/www.w3computing.com\/articles\/author\/w3compadmin\/"},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/2209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/comments?post=2209"}],"version-history":[{"count":2,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/2209\/revisions"}],"predecessor-version":[{"id":2211,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/2209\/revisions\/2211"}],"wp:attachment":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/media?parent=2209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/categories?post=2209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/tags?post=2209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}