gpt4 book ai didi

java - 访问集合中特定于 "type"类的方法

转载 作者:行者123 更新时间:2023-12-01 14:42:42 25 4
gpt4 key购买 nike

情况:

  • 我有一个带有多种方法的抽象类:
  • 我有一些子类扩展了上面的类
  • 我有一个 Collection <MyAbstractClass>充满我主类中子类的新对象的集合
  • 我有一个子类的独特方法,我希望以覆盖我通常调用的方法的方式执行该方法。

即如果条件为真,则代替通常的 collection.get(i).method();哪里i是索引,执行collection.get(i).specificMethod();

有人能给我指出进一步学习的正确主题吗?另外,对我的情况进行一些了解会产生奇迹。

最佳答案

听起来你想要instanceof:

for (AbstractThing thing : yourCollection) {
if (thing instanceof SubclassWithSpecialMethod) {
((SubclassWithSpecialMethod)thing).specialMethod();
}
else {
thing.method();
}
}

虽然 instanceof 有完全合法的用途,但如果您发现自己正在使用它(特别是如果您经常使用它),则有时表明最好退后一步,然后再使用它。放眼全局,看看是否有某种方法可以重新组织事情,这样你就不会这样做。

例如,在这种情况下,抽象类可能具有方法,然后具有特殊行为的子类可以覆盖方法具有特殊行为,因此调用者只需调用方法,当您处理该特定子类时,多态性就会启动以赋予其特殊行为。

关于java - 访问集合中特定于 "type"类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15782478/

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