-1

我在 DTO 中有 Set,我想在 GWT 的 Presenter 类中获取该集合的所有值,如何获取它

public List<MenuDTO> getMenuDetails() {
        List<MenuDTO> menu = new ArrayList<MenuDTO>();
        MenuDTO menuValue = new MenuDTO();
        SubMenuDTO subMenuValue = new SubMenuDTO();
        SubMenuDTO subMenuValue1 = new SubMenuDTO();
        menuValue.setMenuHeading("Home");
        Set<SubMenuDTO> setvalue = new HashSet<SubMenuDTO>();
        subMenuValue.setMenuHeading("file");
        subMenuValue1.setMenuHeading("Copy");
        setvalue.add(subMenuValue);
        setvalue.add(subMenuValue1);
        menuValue.setSubMenuItems(setvalue);
        menu.add(menuValue);
        return menu;
    }

输出:-

[com.dupont.rsms.commons.dto.SubMenuDTO@2dafd034, com.dupont.rsms.commons.dto.SubMenuDTO@718e1d5a]

我无法转换为字符串,请帮助我解决这个问题。

4

2 回答 2

1

您正在打印 SubMenuDTO 对象的值,但它们没有实现toString()方法,因此改为使用默认Object.toString()方法。这就是输出看起来如此的原因。

考虑编写一个toString()方法或寻找另一种方法来检索您希望打印的值。

于 2013-03-31T12:22:03.120 回答
0

通常,如果您正在打印一个对象,toString()则会调用它的方法。如果你不重写这个方法,它的超类toString()方法将被调用(在大多数情况下,它是对象类的toString()方法)。如果你看一下 Object 类的 toString() 方法的实现,它看起来像getClass().getName() + '@' + Integer.toHexString(hashCode()). 这就是为什么你会得到这样的输出。

于 2013-03-31T12:28:26.170 回答