我在 CORBA 中创建了一个应用程序,它允许用户仅在运行时注册和存储信息。我必须为每个注册的用户分配一个唯一的 ID。第一个用户的唯一 ID 必须采用 0001 的格式,第二个用户的唯一 ID 必须采用 0002 的格式,等等。在网上查看后,我找不到太多关于如何以这种格式分配这些数字的信息。
为每个客户分配唯一的 ID。 唯一 ID 基于服务器维护的计数器。 第一次注册将分配 ID 0001,但表示为字符串。
我的servant代码如下:
公共(public)类 AccountServant 实现 AccountManagerOperations{
double topupBalance = 0;
int credit = 0;
int uid = 0;
public void topup(double amount){
topupBalance = topupBalance+amount;
credit = credit +1;
}
public double getBalance(){
return topupBalance;
}
public int getUniqueID(){
DecimalFormat decimalFormat = new DecimalFormat("0000");
uid = uid +1;
return uid;
}
public static Hashtable hashtable = new Hashtable();
public static ORB orb;
public AccountServant (org.omg.CORBA.ORB orb){
this.orb=orb;
}
public void storeAccountDetails (AnyTopUpAccount.KamaradAccountDetails myKamaradAccountDetails){
hashtable.put(myKamaradAccountDetails.name, myKamaradAccountDetails);
}
public Any getAccountDetails (String name, AnyHolder myKamaradAccountDetails){
Any anyDD = orb.create_any();
KamaradAccountDetails tempKamaradAccDetails = (KamaradAccountDetails)hashtable.get(name);
KamaradAccountDetailsHelper.insert(anyDD, tempKamaradAccDetails);
myKamaradAccountDetails.value = anyDD;
return anyDD ;
}
}
最佳答案
int
是 32 位整数类型,不允许有前导零。您可以使用整数类型作为唯一 ID,然后使用格式来显示 ID
private static final DecimalFormat decimalFormat = new DecimalFormat("0000");
...
public String getUniqueIDText(){
return decimalFormat.format(uid);
}
关于java - 创建用户 ID(0001、0002 等)CORBA/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22256564/