Java
ObjectId
ObjectId 是一个表示对象唯一标识符的类。可以使用不同的算法生成,如 Snowflake、GUID、Random 和 ULID。ObjectId 的值可以是 long、String、UUID 或 Integer 类型。该类提供了使用不同算法生成 ObjectId 的方法,并重写了 hashCode、equals 和 toString 方法以确保正确的功能。ObjectId 类是不可变的,这意味着一旦创建,其值就不能更改。
- Module:
core - Type:
final class - Package:
com.euonia.core - Author: damon(zhaorong@outlook.com)
Methods¶
getValue¶
获取 ObjectId 的值。
- Returns:
Object- ObjectId 的值
ObjectId (constructor)¶
使用指定的值构造 ObjectId。
- Parameters:
value(long): ObjectId 的值
ObjectId (constructor)¶
使用指定的值构造 ObjectId。
- Parameters:
value(String): ObjectId 的值
ObjectId (constructor)¶
使用指定的值构造 ObjectId。
- Parameters:
value(UUID): ObjectId 的值
ObjectId (constructor)¶
使用指定的值构造 ObjectId。
- Parameters:
value(Integer): ObjectId 的值
snowflake¶
使用 Snowflake 算法生成新的 ObjectId。
- Returns:
ObjectId- 新的 ObjectId
guid¶
使用 GUID 算法生成新的 ObjectId(默认类型)。
- Returns:
ObjectId- 新的 ObjectId
guid¶
使用 GUID 算法生成新的 ObjectId。
- Parameters:
type(GuidType): GUID 生成策略- Returns:
ObjectId- 新的 ObjectId
random¶
使用 Random 算法生成新的 ObjectId。
- Returns:
ObjectId- 新的 ObjectId
ulid¶
使用 ULID 算法生成新的 ObjectId。
- Returns:
ObjectId- 新的 ObjectId
newRandomId¶
基于指定种子生成新的随机字符串 ID。
- Parameters:
seed(long): 种子值- Returns:
String- 新的随机字符串 ID
newRandomId¶
使用当前时间作为种子,生成新的随机字符串 ID。
- Returns:
String- 新的随机字符串 ID
newSnowflakeId¶
生成新的 Snowflake ID。
- Returns:
long- 新的 Snowflake ID
newGuid¶
使用默认生成策略(DEFAULT)生成新的 GUID。
- Returns:
UUID- 新的 GUID
newGuid¶
根据指定的类型生成新的 GUID。
- Parameters:
type(GuidType): GUID 生成策略- Returns:
UUID- 新的 GUID
newUlid¶
生成新的 ULID 字符串。
- Returns:
String- 新的 ULID 字符串
getValue¶
将 ObjectId 的值按指定类型返回。如果值不是该类型的实例则返回 null。
- Parameters:
type(Class<T>): 目标类型- Returns:
T- 转换后的值,如果类型不匹配则返回 null
Usage¶
// 使用不同算法生成 ObjectId
ObjectId id1 = ObjectId.snowflake();
ObjectId id2 = ObjectId.guid();
ObjectId id3 = ObjectId.guid(GuidType.SEQUENTIAL_AS_STRING);
ObjectId id4 = ObjectId.random();
ObjectId id5 = ObjectId.ulid();
// 便捷静态方法(不创建 ObjectId 包装)
long snowflakeId = ObjectId.newSnowflakeId();
UUID guid = ObjectId.newGuid();
UUID seqGuid = ObjectId.newGuid(GuidType.SEQUENTIAL_AS_STRING);
String ulid = ObjectId.newUlid();
String randomId = ObjectId.newRandomId();
String seededId = ObjectId.newRandomId(System.currentTimeMillis());
// 类型安全的取值
ObjectId objId = ObjectId.snowflake();
Long longVal = objId.getValue(Long.class);
- Parameters:
seed(long): 种子值- Returns:
String- 新的随机字符串 ID
newRandomId¶
使用当前时间作为种子生成新的随机字符串 ID。
- Returns:
String- 新的随机字符串 ID
newSnowflakeId¶
生成新的 Snowflake ID。
- Returns:
long- 新的 Snowflake ID
newGuid¶
使用默认生成策略生成新的 GUID。
- Returns:
UUID- 新的 GUID
newGuid¶
根据指定的类型生成新的 GUID。
- Parameters:
type(GuidType): GUID 生成策略- Returns:
UUID- 新的 GUID
newUlid¶
生成新的 ULID 字符串。
- Returns:
String- 新的 ULID 字符串
getValue¶
获取 ObjectId 的值。
- Returns:
Object- ObjectId 的值
getValue¶
获取指定类型的 ObjectId 值。
- Parameters:
type(Class<T>): 期望的类型- Returns:
T- 转换后的值,如果不匹配则返回 null
hashCode¶
返回值的哈希码。
- Returns:
int- 哈希码
equals¶
比较两个 ObjectId 是否相等。
- Parameters:
obj(Object): 要比较的对象- Returns:
boolean- 相等返回 true
toString¶
返回值的字符串表示。
- Returns:
String- 字符串表示