我有这样的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的用户对象 ,而不是字符串。 请帮忙。