When we use conditional operator with different data types then the result value will be converted to higher data type value. Due to this we will get unexpected results.
Example:
When we use conditional operator with different data types then the result value will be converted to higher data type value. Due to this we will get unexpected results. Example: package com.gudla.numericpromotion; public class NumericPromotion { boolean f = true; void test(){ Object s = true ? new Integer(20) : new Float(4.0); System.out.println("Unexpected results: "+s); if(f){ s = new Integer(20); System.out.println(s); } else{ s = new Float(4.0); System.out.println(s); } } }
Output:
Unexpected results: 20.0 20