gpt4 book ai didi

java - java中的向上转型和向下转型

转载 作者:搜寻专家 更新时间:2023-11-01 01:19:25 25 4
gpt4 key购买 nike

我能理解什么是向上转型,但向下转型有点令人困惑。我的问题是我们为什么要沮丧?你能帮我举一个现实世界的例子吗?沮丧有那么重要吗?

最佳答案

向下转型是一个必要之恶,例如在处理返回非泛型集合的遗留 API 时。另一个经典的例子是 equals 方法:

public class Phleem{

public Phleem(final String phloom){
if(phloom == null){
throw new NullPointerException();
}
this.phloom = phloom;
}

private final String phloom;

public String getPhloom(){
return phloom;
}

@Override
public boolean equals(final Object obj){
if(obj instanceof Phleem){
// downcast here
final Phleem other = (Phleem) obj;
return other.phloom.equals(phloom);
}
return false;
}

// ...

}

不过,我想不出一个需要向上转型的例子。好的,从方法中返回尽可能不具体的对象是一种很好的做法,但这完全可以在不强制转换的情况下完成:

public Collection<String> doStuff(){
// no casting needed
return new LinkedHashSet<String>();
}

关于java - java中的向上转型和向下转型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013215/

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