Class ArgumentKey<T>

java.lang.Object
org.qiunet.utils.args.ArgumentKey<T>

public final class ArgumentKey<T> extends Object
Argument 的key
Author:
qiunet 2020-10-16 16:38
  • Constructor Details

    • ArgumentKey

      public ArgumentKey()
    • ArgumentKey

      public ArgumentKey(T defaultVal)
    • ArgumentKey

      public ArgumentKey(Supplier<T> defaultValGetter)
  • Method Details

    • get

      public <Container extends IArgsContainer> T get(Container container)
      从container get 到对应的值.
      Type Parameters:
      Container - 容器类
      Parameters:
      container - 容器对象
      Returns:
      对应的值
    • set

      public <Container extends IArgsContainer> T set(Container container, T newVal)
      设置指定的值到容器.
      Type Parameters:
      Container - 容器类
      Parameters:
      container - 容器对象
      newVal - 值
      Returns:
      返回旧值
    • isNull

      public <Container extends IArgsContainer> boolean isNull(Container container)
      容器中指定的key是否有值.
      Type Parameters:
      Container - 容器类
      Parameters:
      container - 容器对象
      Returns:
      true 空
    • notNull

      public <Container extends IArgsContainer> boolean notNull(Container container)
      容器中指定的key是否有值.
      Type Parameters:
      Container - 容器类
      Parameters:
      container - 容器对象
      Returns:
      true 非空
    • compareAndSet

      public <Container extends IArgsContainer> boolean compareAndSet(Container container, T oldVal, T newVal)
      compare and set value
      Type Parameters:
      Container - 容器类
      Parameters:
      container - 容器对象
      oldVal - 旧值
      newVal - 新值
      Returns:
      cas的结果 true 为成功.
    • computeIfAbsent

      public <Container extends IArgsContainer> T computeIfAbsent(Container container, Supplier<T> newVal)
      如果没有数据, 就使用指定的Supplier 初始化数据
      Type Parameters:
      Container - 容器类型
      Parameters:
      container - 容器对象
      newVal - 构造初始值的 Supplier
      Returns:
      现有的. 或者新的值
    • remove

      public <Container extends IArgsContainer> void remove(Container container)
      删除 key
      Type Parameters:
      Container - 容器类型
      Parameters:
      container - 容器对象
    • clear

      public <Container extends IArgsContainer> void clear(Container container)
      清除key
      Type Parameters:
      Container - 容器类型
      Parameters:
      container - 容器对象