gpt4 book ai didi

java - 具有不同类型表达式的三元运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:06 30 4
gpt4 key购买 nike

<分区>

我在玩三元运算符时发现了一些奇怪的东西。我有以下代码:

class Main {

static void foo(int a){
System.out.println("int");
}

static void foo(String a){
System.out.println("String");
}

static void foo(Object a){
System.out.println("object");
}

public static void main(String[] args) {
foo(2==3 ? 0xF00:"bar");
System.out.println((2==3 ? 0xF00:"bar").getClass().getName());
}
}

结果

object

java.lang.String

结果的第一行显示这条指令传递给带有对象参数的foo方法。

第二行,指令本身生成String

问题:

  1. 如果结果是 String,为什么编译器决定使用 Object?

  2. 这是因为类型歧义吗?

  3. 如果是那么为什么要返回类名 java.lang.String

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com