java - ArrayList 类中的 toString() 是否被重写

标签 java arraylist tostring

class Employee
{
    String name ;
    // Constructor 
    Employee(String name) {
        this.name = name;
    }
    // override toString method in Employee class
    @Override
    public String toString() {
        return name;
    }
}

public class TestArraylistIterator {

    public static void main(String[] args) {
        Employee obj1 = new Employee("Java");
        Employee obj2 = new Employee("Microsoft");

        TestArraylistIterator obj3 = new TestArraylistIterator();

        List ls = new ArrayList();
        ls.add(obj1);
        ls.add(obj2);               
        System.out.println("List object :: " + ls); 
        System.out.println("TestArraylistIterator :: " + obj3);     
    }
}

output : 
List object :: [Java, Microsoft]
TestArraylistIterator :: TestArraylistIterator@ad3ba4

所以问题是:如果我们尝试打印任何对象,它会打印 obj.getClass()+"@"+obj.hashCode()。但是在打印列表对象时,它不会以相同的方式打印列表对象。相反,它看起来像 toString() 已经在 ArrayList 类中被重写。但在 ArrayList API 实现中没有找到类似的东西。欢迎任何建议..

最佳答案

不,但它在 AbstractCollection 中被覆盖,其中 ArrayList 是其间接子类。

供将来引用:查看 Java API 文档时,在“方法摘要”下方,可能有多个“从类 SomeClass 继承的方法”部分。在 documentation for ArrayList ,它表明 toString() 继承自 AbstractCollection

关于java - ArrayList 类中的 toString() 是否被重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903531/

相关文章:

Java JAR 的行为与在 IDE 外运行的程​​序不同

java - 使用 toString 的建议

c# - 不必要地转换为用于在 mscorlib 中调用 ToString() 的对象

c++ - 在我的类(class)中,我应该用什么来改变 cout/cin 的东西?

java - HashMap 和字典 ADT 的区别

java - Active Directory - 通过指定搜索过滤器和搜索控件进行搜索,无需上下文

java 如何直接将 double 转换为字符串?

Java比较两个List的对象值?

java - 如何使用 Java 从两个 for 循环中获取单独的输出

java - ArrayList显式类型参数字符串可以用<>代替吗?