2014-03-07 36 views
0

我在CORBA中创建了一个应用程序,它允许用户只在运行时注册和存储信息。我必须为注册的每个用户分配一个唯一的ID。唯一的ID必须是第一个用户的0001格式,第二个用户的0002等等。在网上查找过后,我无法找到如何在这种格式中分配这些数字的方法。创建用户标识(0001,0002等)CORBA/Java

唯一ID分配给每个客户。 唯一ID基于由服务器维护的计数器。 第一次注册将被分配ID 0001,但表示为一个字符串。

我的仆人代码如下:

公共类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 ; 
} 

}

回答

2

int是一个32位的整数类型不允许前导零。您可以使用整数类型作为唯一ID,然后使用格式来显示ID

private static final DecimalFormat decimalFormat = new DecimalFormat("0000"); 
... 

public String getUniqueIDText(){ 
    return decimalFormat.format(uid); 
}