不抽象且不覆盖抽象方法 - IDL
Not abstract and does not override abstract method - IDL
我正在使用 Java 开发 CORBA 应用程序。我正在使用 'idlj' 生成存根和骨架。编译时出现此错误。
Account.java:12: error: Account is not abstract and does not override abstract method _all_interfaces(POA,byte[]) in Servant
public class Account extends org.omg.PortableServer.Servant
^
Note: SMTS/AccountPOA.java uses unchecked or unsafe operations.
这些是 class 定义和 idl 定义。
SMTS.idl 文件
module SMTS{
interface Account{
attribute string accountID;
attribute double balance;
void setAccountID(inout string accid);
void setBalance(inout double value);
};
};
Account.java class
public class Account extends AccountPOA{
private ORB orb;
private String accountID;
private double balance;
public void setORB(ORB orb_val){
orb = orb_val;
}
public void setAccountID(String accid){
this.accountID = accid;
}
public void setBalance(double value){
this.balance = value;
}
}
class AccountPOA
或其超类之一 class 具有一个或多个未被覆盖的抽象方法。如果您扩展包含抽象方法的抽象 class,则您必须重写所有抽象方法。唯一的例外是你的 class 本身是抽象的。只要你有一个可以实例化的具体class(=非抽象),你必须覆盖所有抽象方法。
因此,请查看 AccountPOA
的代码以及它扩展或实现的所有 classes 和接口。 class 层次结构中一定有一个未被重写的抽象方法。
我正在使用 Java 开发 CORBA 应用程序。我正在使用 'idlj' 生成存根和骨架。编译时出现此错误。
Account.java:12: error: Account is not abstract and does not override abstract method _all_interfaces(POA,byte[]) in Servant public class Account extends org.omg.PortableServer.Servant ^ Note: SMTS/AccountPOA.java uses unchecked or unsafe operations.
这些是 class 定义和 idl 定义。
SMTS.idl 文件
module SMTS{
interface Account{
attribute string accountID;
attribute double balance;
void setAccountID(inout string accid);
void setBalance(inout double value);
};
};
Account.java class
public class Account extends AccountPOA{
private ORB orb;
private String accountID;
private double balance;
public void setORB(ORB orb_val){
orb = orb_val;
}
public void setAccountID(String accid){
this.accountID = accid;
}
public void setBalance(double value){
this.balance = value;
}
}
class AccountPOA
或其超类之一 class 具有一个或多个未被覆盖的抽象方法。如果您扩展包含抽象方法的抽象 class,则您必须重写所有抽象方法。唯一的例外是你的 class 本身是抽象的。只要你有一个可以实例化的具体class(=非抽象),你必须覆盖所有抽象方法。
因此,请查看 AccountPOA
的代码以及它扩展或实现的所有 classes 和接口。 class 层次结构中一定有一个未被重写的抽象方法。