java中的Object []和Object o是啥[关闭]

Posted

技术标签:

【中文标题】java中的Object []和Object o是啥[关闭]【英文标题】: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 哦,是的。我有时会忘记这一点 【参考方案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搜索它

【讨论】:

以上是关于java中的Object []和Object o是啥[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

java object对象和数组之间的转换

Java通过ArrayList的contains(Object o)方法实现去重字符串中的字符

java泛型转换

Object类与常用类,内部类

Java Object类

Object o = makeMeAnObjectPlease(); 之间的区别和对象 o = new Object();