我有这样的 IDL 接口:
interface User
{
string toString();
//..
};
interface Group
{
typedef sequence<User> Users;
Users getUsers();
};
当我将它翻译成 C++ 时,我得到了这样的结果:
// ...
Group::Users* GroupImpl::getUsers()
{
// ..return sequence of 'User'-objects
}
在客户端(用 Java 编写)我想向我的用户展示。我这样做:
public void showAllUsers()
{
User[] users = interface_obj.getUsers();
if(users.length != 0)
{
DefaultListModel model = new DefaultListModel();
for(int i=0; i<users.length; i++)
model.addElement(users[i]);
this.usersList.setModel(model);
}
}
this.usersList 是一个JList
.
当我像我写的那样这样做时,我只看到我的用户对象的 IOR:
IOR :0123405948239481293812312903891208320131293812381023
IOR: 0092930912617819919191818173666288810010199181919919
等等 ...
如何做到这一点,看看他们的 toString(); DefaultListModel 中的表示?我不想这样做:
model.addElement(users[i].toString());
那不是重点。当我使用 RMI 而不是 CORBA 时,model.addElement(users[i]);
这正是我所需要的,因为我看到了用户字符串表示。但我需要使用 CORBA 并存储在 DefaultListModel corba-user- objects中,而不是字符串。请帮忙。