Как создать версию UUID 1 в Java / Scala [дубликат]

Отсутствует «extern» в объявлениях / определениях переменной const (только для C ++)

Для людей, прибывающих с C, может показаться неожиданным, что в C ++ глобальные переменные const имеют внутренние (или статические) связь. В C это не так, поскольку все глобальные переменные неявно extern (т.е. когда отсутствует ключевое слово static).

Пример:

// file1.cpp
const int test = 5;    // in C++ same as "static const int test = 5"
int test2 = 5;

// file2.cpp
extern const int test;
extern int test2;

void foo()
{
 int x = test;   // linker error in C++ , no error in C
 int y = test2;  // no problem
}

correct would использовать файл заголовка и включить его в file2.cpp и file1.cpp

extern const int test;
extern int test2;

. В качестве альтернативы можно было бы объявить переменную const в файле file1.cpp с явным extern

45
задан dogfish 15 August 2013 в 02:20
поделиться

3 ответа

String timeuuid = com.datastax.driver.core.utils.UUIDs.timeBased().toString();

посмотрите https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/utils/UUIDs.html

6
ответ дан Baum mit Augen 4 September 2018 в 08:32
поделиться

Будьте очень осторожны, используя com.eaio.uuid.UUID, если вам нужно генерировать GUID по времени, отличному от текущего, так как это всегда будет генерировать тот же UUID для заданного времени. Поэтому, если ваши данные требуют генерации UUID, где записи могут иметь одно и то же время, это будет генерировать одинаковый UUID.

Нам понадобилось это, чтобы сгенерировать UUID для записей, которые создаются заранее, а также несколько записей одновременно, мы попытались настроить его, пытаясь использовать UUIDGen.createTime (). Мы обнаружили, что он имеет побочный эффект, чтобы изменить время выхода из строя. Если последующий запрос на создание UUID имеет отметку времени, предшествующую предыдущему запросу, вы получите UUID, который основан на отметке времени предыдущего запроса.

После всего анализа мы имели просто вернуться к созданию UUID во время создания, так что нам не нужно передавать его в качестве аргумента. Какое бы решение мы придумали для генерации UUID в более позднее время, у каждого есть недостаток.

10
ответ дан findsandeep 4 September 2018 в 08:32
поделиться

FasterXML Java Uuid Generator (JUG)

https://github.com/cowtowncoder/java-uuid-generator

UUID uuid = Generators.timeBasedGenerator().generate();
1
ответ дан Vadzim 4 September 2018 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: