我正在创建一个生成Integer类型的唯一ID的方法,并且想知道如何执行以下操作。
在我的对象中,我想从我的setter方法中调用generateUniqueID方法。 generateUniqueID将生成递增数字,然后将其附加到字符串
e.g。提醒-1,提醒-2等......
我不太确定如何做到这一点,并且想知道是否有人可以提供帮助?
谢谢
答案 0 :(得分:5)
只要没有并发。
private static int reminderID = 1;
public synchronized static String generateUniqueID() {
String uniqueId = "Reminder-" + reminderID;
reminderID++;
return uniqueId;
}
答案 1 :(得分:3)
private static final AtomicInteger counter = new AtomicInteger(1);
public String generateUniqueID() {
return "Reminder-" + counter.getAndIncrement();
}
答案 2 :(得分:1)
如果你有很多这些,你可以使用base 36编码。
private final AtomicLong counter = new AtomicLong();
public String generateUniqueID() {
return "Reminder-" + Long.toString(counter.incrementAndGet(), 36);
}
答案 3 :(得分:0)
也许:
class Classname {
private static int highestId = 0;
int object_id;
public Classname() {
object_id = highestId++;
}
}
会工作吗?
如上所述,这不是线程安全的。