gpt4 book ai didi

java - 使用 UnboundID 的 @LDAPGetter 和 @LDAPSetter

转载 作者:行者123 更新时间:2023-11-30 06:36:36 31 4
gpt4 key购买 nike

有没有人有使用 UnboundID's SDK 中这两个注释的基本示例?将对象保存在 LDAP 目录中?我似乎找不到关于 @LDAPSetter 的参数类型的任何信息。方法或从 @LDAPGetter 返回的值方法。

换句话说,我如何填写<?>小号:

/**
* Called when creating a Java object from an LDAP entry.
*/
@LDAPSetter(attribute="roleOccupants")
void initMembers(<?> occupants) {
throw new UnsupportedOperationException();
}

/**
* Called when turning a Java object into an LDAP entry.
*/
@LDAPGetter(attribute="roleOccupants")
<?> storeMembers() {
throw new UnsupportedOperationException();
}

最佳答案

这实际上取决于 roleOccupants 属性的值。 @LDAPGetter@LDAPSetter 注释的可选字段之一是 encoderClass,它允许您指定将用于的对象编码器在 LDAP 属性值和 Java 数据类型之间转换。如果您没有指定自定义编码器(大多数情况下您不需要),那么它将使用 DefaultObjectEncoder 类来执行工作,它支持以下数据类型:

  • boolean 值
  • 字节[]
  • 字符[]
  • 漂浮
  • 内部
  • java.lang. boolean 值
  • java.lang.Double
  • java.lang.Float
  • java.lang.Integer
  • java.lang.Long
  • java.lang.Short
  • java.lang.String
  • java.lang.StringBuffer
  • java.lang.StringBuilder
  • java.math.BigDecimal
  • java.math.BigInteger
  • java.net.URI
  • java.net.URL
  • java.util.Date
  • java.util.UUID
  • java.util.concurrent.atomic.AtomicInteger
  • java.util.concurrent.atomic.AtomicLong
  • com.unboundid.ldap.sdk.DN
  • com.unboundid.ldap.sdk.Filter
  • com.unboundid.ldap.sdk.LDAPURL
  • com.unboundid.ldap.sdk.RDN

它还支持上述任何类型的数组、列表和集合,以及任何类型的枚举。请参阅 com.unboundid.ldap.sdk.persist.DefaultObjectEncoder 的类级文档类以获得对支持的数据类型和任何约束的更完整描述。

实际上,您选择的数据类型取决于以上哪种最适合存储在相应 LDAP 属性中的信息类型。在许多情况下,String 可能是最合适的,但在其他情况下,您可能更愿意将其视为数字、DN、时间戳或类似的东西。如果没有任何默认类型是可接受的,那么您可以创建自己的自定义 ObjectEncoder 实例来执行您想要的任何转换。

关于java - 使用 UnboundID 的 @LDAPGetter 和 @LDAPSetter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4684906/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com