【问题标题】:Creating user id (0001, 0002, etc) CORBA/Java创建用户 ID(0001、0002 等)CORBA/Java
【发布时间】:2014-03-07 17:19:24
【问题描述】:

我在 CORBA 中创建了一个应用程序,它允许用户仅在运行时注册和存储信息。我必须为每个注册的用户分配一个唯一的 ID。对于第一个用户,唯一 ID 的格式必须为 0001,对于第二个用户,必须采用 0002 等格式。在网上查看后,我找不到太多关于如何以这种格式分配这些数字的信息。

为每个客户分配唯一 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 ;
}

}

【问题讨论】:

    标签: java unique uuid corba


    【解决方案1】:

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

    private static final DecimalFormat decimalFormat = new DecimalFormat("0000");
    ...
    
    public String getUniqueIDText(){
        return decimalFormat.format(uid);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2019-04-17
      • 2021-06-07
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多