public static void main(String[] args) {
Object o1;
if (true)
o1 = new Integer(5);
else
o1 = new Double(2.0);
Object o2 = true ? new Integer(5) : new Double(2.0);
System.out.println(o1);
System.out.println(o2);
}
Yukarıdaki örnek kodda, koşullu işleç kullanılarak (? :) Yukarıdaki örneği tek bir satırda yeniden yazabilirim. Yani, bence o1 & o2'un aynı olması gerekir. Ama, garip, aşağıdaki sonucu:Koşul operatörü, garip davranış
5
5.0
siz beni niye bu davranıştır işaret etmek yardım eder misiniz?
GÜNCEL: sonuç aşağıdaki kod ile aynı olacaktır:
Object o2 = true ? (Object) new Integer(5) : new Double(2.0);
Ben her iki durumda da 'Integer' olsun garip olduğunu düşünüyorum, ama basılı sadece biçim farklıdır. – csmckelvey
Evet, her ikisi de o1, o2 Tamsayıdır. –
Ben instanceof yaparak denedim ve ikinci sonuç false .. 'o1 instanceof Tamsayı 'true sonuç verirken o2 instanceOf Tamsayı' sonucu yanlış .. bu yüzden o2 bir tam sayı değil – Secondo