gpt4 book ai didi

java - 避免在 Java 中进行动态转换

转载 作者:行者123 更新时间:2023-11-29 08:43:28 25 4
gpt4 key购买 nike

public class Test {

public static void main(String[] args) {

Person person = new Person();
Animal animal = new Animal();

Object[] objectArray = new Object[2];

objectArray[0] = person;
objectArray[1] = animal;

objectArray[0]).setName("Alex"); //dynamic casting needed here
objectArray[1]).setName("Kitty");

}
}

在将对象数组作为参数传递时,如何避免动态转换的需要?

乐:

按照Steve101的建议,我写了一个接口(interface),但是还是没有解析方法。我做错了什么吗?

LE2:实际上它像 Steve101 建议的那样工作。

public interface Entity {

public String properties();
}

public class Person implements Entity{

public String properties()
{
return "properties_person";
}
}

public class Animal implements Entity{

public String properties()
{
return "properties_animal";
}
}

public class PropertiesProcessor {
public static void getPropertiesArray(Entity[] entityArray)
{
ArrayList propertiesArray = new ArrayList();
for(int i=0;i<entityArray.length;i++)
{
propertiesArray.add(entityArray[i].properties()); //cannot resolve method here
}
}
}

最佳答案

有什么理由不能在定义 setName 方法的 Person 和 Animal 上使用接口(interface)吗?

这样数组可以是“哺乳动物”或类似类型,并且只有在需要特定类型的方法时才需要转换。

关于java - 避免在 Java 中进行动态转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295704/

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