我在 IDL corba 中遇到数组和对象问题 这是我的代码:
interface ISinhVien
{
SinhVien[] DocFile(in String filename);
void GhiFile(in SinhVien[] sv,in String filename);
};
编译时出错:
CORBA_SinhVien>idlj -fall SinhVienIDL.idl
SinhVienIDL.idl (line 3): SinhVien is an undeclared type.
SinhVien[] DocFile(in String filename);
^
SinhVienIDL.idl (line 3): Expected `<identifier>'; encountered `['.
SinhVien[] DocFile(in String filename);
^
SinhVienIDL.idl (line 3): WARNING: Identifier `String' collides with a keyword;
use an escaped identifier to ensure future compatibility.
SinhVien[] DocFile(in String filename);
^
SinhVienIDL.idl (line 4): SinhVien is an undeclared type.
void GhiFile(in SinhVien[] sv,in String filename);
^
SinhVienIDL.idl (line 4): Expected `<identifier>'; encountered `['.
void GhiFile(in SinhVien[] sv,in String filename);
^
SinhVienIDL.idl (line 4): WARNING: Identifier `String' collides with a keyword;
use an escaped identifier to ensure future compatibility.
void GhiFile(in SinhVien[] sv,in String filename);
谁能帮帮我,拜托!!!!!!!!!!!!!!!!!!!!!
最佳答案
CORBA language specification不允许返回任何类型的数组,除非它们首先是类型定义的。
这里有 2 个选项可用 - 固定数组或序列
- 后者更灵活,允许通过实现代码设置数组大小。
interface SinhVien {
boolean someOperation(in long id);
// more operations
};
typedef sequence<SinhVien> sinhviens;
interface ISinhVien
{
sinhviens docFile(in string filename);
void ghiFile(in sinhviens sv, in string filename);
};
旁白:请注意不要将 Java 语法与 IDL 语法混合:string
显示为全部小写。
关于java - IDL corba 中的数组和对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170484/