gpt4 book ai didi

java - List 是否被视为对象、集合或其他任何东西 - Java

转载 作者:行者123 更新时间:2023-11-30 06:06:00 24 4
gpt4 key购买 nike

我有一个包含这四个方法的 B 类:

public class B {

public void f(int x) {
System.out.println("1");
}

public void f(Object x) {
System.out.println("2");
}

public void f(List x) {
System.out.println("3");
}
public void f(Collection x){
System.out.println("4");
}

主要我有这些命令:

B o = new B();
Integer n = new Integer(3);
List<Integer> l = new ArrayList<>();
Collection<Integer> m = new ArrayList<>();
o.f(3);
o.f(n);
o.f(l);
o.f(m);

结果将是:
1
2
3
4

为什么“3”被视为int,而Integer(3)被视为Object?为什么列表或集合不被视为对象?

最佳答案

它在编译时选择该方法的最具体版本。

Integer被认为是Object因为是一个 Object (它继承自 Object ):

https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html

CollectionList将被视为 Object如果您没有更具体的方法版本,也是如此。

但是由于您还重载了 Collection 的方法和List ,这些都被使用了。

关于java - List<T> 是否被视为对象、集合或其他任何东西 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45195826/

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