通用数据类型ID

时间:2014-10-10 01:14:55

标签: java objective-c

在Objective-C中,我们有一个名为id的通用数据类型。我们可以创建一个id类型的可变数组,然后我可以添加到不同类的数组对象中,如下所示:

 Bannana *banana = [[Banana alloc] init];
 Apple *apple = [[Apple allloc] init];

 NSMutableArray *myArray = [[NSMutableArray alloc] init];
 [myArray addObject:banana];
 [myArray addObject:apple];

问题:Java中“id”的等价物是什么?如何在Java中完成上述操作?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以创建Fruit interface并让BananaApple类实现该目标。

之后,您可以执行以下操作:

Fruit banana = new Banana();
Fruit apple = new Apple();

List<Fruit> myList = new ArrayList<Fruit>();
myList.add(banana);
myList.add(apple);

您也可以使用Object类作为列表类型,但是当您将对象从列表中取出时需要小心,因为它们将是Object类型并且根据每个对象的类型需要进行转换:

List<Object> myArray = new ArrayList<Object>();
myArray.add(car);
myArray.add(banana);

for (Object o : myArray) {
    if (o instanceof Car) {
        Car c = (Car) o;
        System.out.println("Car object found.");
        // use Car object
    } else if (o instanceof Banana) {
        Banana b = (Banana) o;
        System.out.println("Banana object found.");
        // use Banana object
    } else {
        System.err.println("Unknown object found!");
    }
}

答案 1 :(得分:0)

id与java中的Object类似。 Java中的所有东西(原始类型除外)都是对象。 如果您只想使用可变列表来存储任何类型,您可以执行此操作但不建议:

List myArray = new ArrayList();
myArray.add(banana);
myArray.add(apple);