【问题标题】:What is Object[] and Object o in java [closed]java中的Object []和Object o是什么[关闭]
【发布时间】:2015-09-30 21:30:18
【问题描述】:

我找到了这个例子,java book之一。我在eclipse中运行了这段代码。但有些东西看不懂。你能理解我吗?

import java.util.*;

class Dog {
    public String name;
    Dog(String n) {
        name = n;
        System.out.println(name);
    }
}
class ItTest {
    public static void main(String[] args) {
        List<Dog> d = new ArrayList<Dog>();
        Dog dog = new Dog("Kutta");
        d.add(dog);
        d.add(new Dog("Kheki Kutta"));
        d.add(new Dog("Leri Kutta"));
        Iterator<Dog> i3 = d.iterator(); 
        while (i3.hasNext()) {
            Dog d2 = i3.next(); 
            System.out.println(d2.name);
        }
        System.out.println("size " + d.size());
        System.out.println("get1 " + d.get(1).name);
        System.out.println("Kutta " + d.indexOf(dog));
        d.remove(2);
        Object[] oa = d.toArray();
        for(Object o : oa) {
            Dog d2 = (Dog)o;
            System.out.println("oa " + d2.name);
        }
    }
}

这些行发生了什么

Object[] oa = d.toArray();
for(Object o : oa) {
    Dog d2 = (Dog)o;
    System.out.println("oa " + d2.name);

Object[] oa 是什么,Object o 又是什么?

【问题讨论】:

  • 任何Java教程都会很容易解释:java.lang.Object是根Java对象类; Object [] 是一个 Object 类型的引用数组。请自行阅读更多内容。这个问题太基础了。
  • 这些行中的每一行要么记录得很好,要么存在大量关于它的资源。我不投票结束这个问题的唯一原因是没有选项“用户懒得做基础研究”
  • 我投票结束这个问题,因为作者应该能够以最少的阅读和努力自己回答这个问题。
  • @Paul 你可以写下你自己投票结束的理由。
  • @LuiggiMendoza 哦,是的。我有时会忘记这一点

标签: java collections


【解决方案1】:

Object[] oa是一个对象数组,是调用List#toArray的结果。

这部分代码:

for (Object o : oa) {
    /* your code goes here */
}

称为enhanced for loop。就像写这段代码:

for (int i = 0; i < oa.length; i++) {
    Object o = oa[i];
    /* your code goes here */
}

其中Object o是一个局部变量,用于获取数组中的一个元素。 Object 是 Java 中的根类。

拜托,以后如果有你不明白的代码,那么你应该先在the official Java tutorial搜索它

【讨论】:

    猜你喜欢
    • 2014-09-26
    • 2014-07-28
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多