Class TimeBasedRandomIdGenerator

java.lang.Object
uno.xifan.id.generator.custom.TimeBasedRandomIdGenerator
All Implemented Interfaces:
IdGenerator

public class TimeBasedRandomIdGenerator extends Object implements IdGenerator
基于时间戳和随机数的ID生成器

该类用于生成64位长整型ID,其中高32位为时间戳(相对于自定义纪元),低32位为随机数。 这种设计可以保证ID按时间递增,同时在同一时间点生成的ID具有唯一性。

Since:
2024-05-01
Version:
1.0
Author:
ixiongdi
  • Constructor Details

    • TimeBasedRandomIdGenerator

      public TimeBasedRandomIdGenerator()
  • Method Details

    • next

      public static long next()
      生成一个新的基于时间和随机数的ID

      该方法创建并返回一个64位长整型ID,其结构如下: - 高32位:当前时间(秒级)减去自定义纪元时间 - 低32位:随机数

      Returns:
      新生成的64位长整型ID
    • generate

      public Long generate()
      Description copied from interface: IdGenerator
      生成一个唯一标识符。 每个实现类都应该根据其特定的生成策略来实现此方法。
      Specified by:
      generate in interface IdGenerator
      Returns:
      生成的唯一标识符,具体类型由实现类决定
    • idType

      public IdType idType()
      Description copied from interface: IdGenerator
      获取当前生成器的标识符类型

      此方法用于标识生成器使用的具体ID生成策略。每个实现类都应该 返回一个对应其生成策略的IdType枚举值。

      Specified by:
      idType in interface IdGenerator
      Returns:
      当前生成器的标识符类型