首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何输出存储在java矢量中的对象的属性?

如何输出存储在java矢量中的对象的属性?
EN

Stack Overflow用户
提问于 2012-10-10 17:59:52
回答 5查看 2.5K关注 0票数 0

我已经创建了几个自定义类的对象,并为它们分配了不同的属性。然后,我将这些对象中的每个对象添加到一个向量中,但是当我尝试输出向量的元素时,我得到的只是对对象的引用,而不是对象属性。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-10 18:01:41

您可以使用enhanced for loop访问它们

代码语言:javascript
运行
复制
Vector<YourObject> vector = ...;

for(YourObject obj : vector)
{
    System.out.println(obj.YOUR_METHOD_OR_ATTRIBUTE);
}

或使用elementAt(position)

代码语言:javascript
运行
复制
System.out.println(vector.elementAt(position).YOUR_METHOD_OR_ATTRIBUTE);

或者最后,覆盖toString()方法并使用:

代码语言:javascript
运行
复制
System.out.println(vector.elementAt(position));
票数 2
EN

Stack Overflow用户

发布于 2012-10-10 18:02:35

当您调用System.out.println() (或类似的方法)并向其传递对类实例的引用时,将隐式调用该类的toString()方法。您看到的是从Object类继承的toString()的默认实现。

如果您想更改输出,只需在您的类中提供您自己的toString()实现,以返回您想要的信息。

票数 3
EN

Stack Overflow用户

发布于 2012-10-10 18:03:01

打印任何类的实例时,都会调用Object类的toString()方法。

您需要覆盖Custom类中的toString方法,并打印所需的属性。然后,将调用您的toString()方法,而不是Object's toString。

或者,您可以有一个getter方法,并在每个

代码语言:javascript
运行
复制
public class Custom {
    private String attr;

    public String getAttr() {
         return this.attr;
    }

    @Override
    public String toString() {
         return attr;
    }
}

然后,当您打印实例时,将调用toString(),并打印attr值。

代码语言:javascript
运行
复制
Vector<Custom> yourVector = ...;

for (Custom val: yourVector) {
    System.out.println(val);  // Will invoke `toString()` and print attr value.
    System.out.println(val.getAttr());  // Prints attr value
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12816660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档