Целочисленное приращение и конкат - PullRequest
1 голос
/ 04 марта 2011

Я нахожусь в процессе создания метода для генерации уникального идентификатора типа Integer, и мне было интересно, как сделать следующее.

В моем объекте я хочу вызвать метод generateUniqueID из моего метода сеттера. GenerateUniqueID сгенерирует инкрементное число и затем добавит его к строке

например. Напоминание-1, Напоминание-2 и т. Д ....

Я не совсем уверен, как это сделать, и мне было интересно, если кто-нибудь может помочь?

Спасибо

Ответы [ 4 ]

5 голосов
/ 04 марта 2011

Пока нет параллелизма.

private static int reminderID = 1;

public synchronized static String generateUniqueID() {
    String uniqueId = "Reminder-" + reminderID;
    reminderID++;
    return uniqueId;
}
3 голосов
/ 04 марта 2011
private static final AtomicInteger counter = new AtomicInteger(1);

public String generateUniqueID() {
    return "Reminder-" + counter.getAndIncrement();
}
1 голос
/ 04 марта 2011

Если у вас их много, вы можете использовать кодировку base 36.

private final AtomicLong counter = new AtomicLong();

public String generateUniqueID() {
    return "Reminder-" + Long.toString(counter.incrementAndGet(), 36);
}
0 голосов
/ 04 марта 2011

Возможно:

class Classname {
    private static int highestId = 0;
    int object_id;

    public Classname() {
        object_id = highestId++;
    }
}

Будет работать?

Как отмечалось выше, это не потокобезопасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...