【问题标题】:FusionAuth setting preferred languages using the java clientFusionAuth 使用 java 客户端设置首选语言
【发布时间】:2020-06-17 03:33:06
【问题描述】:

我在我的应用程序中使用 fusionauth java 客户端与 fusionauth 集成。 当用户注册时,我想为他设置首选语言,以便向他发送所需语言的验证电子邮件。 User 对象的字段preferredLanguages 标记为final,并且无法在构造函数中设置。我该怎么做?

【问题讨论】:

  • 使用反射可以,但我认为这不是最好的主意...Reflect.on(user).set("preferredLanguages", asList(Locale.ENGLISH));

标签: java fusionauth


【解决方案1】:

所有 FusionAuth 域对象都是开放的(即不是不可变的)。您可以在 FusionAuth 的 Java 客户端中使用带有 Buildable 接口的 Builder 模式来轻松设置值。

下面是一些代码的样子:

User u = new User().with(u -> u.preferredLanguages.add(Locale.English))
                   .with(u -> u.firstName = "Bob")
                   ...

由于preferredLanguagesList<Locale>,您还可以使用addAll 和任何其他List 方法。

虽然此方法不能确保 User 对象在构造函数返回后立即被完全填写,但 Java 将确保我示例中的变量 User u 被完全填写,因为 with 方法都需要在左侧赋值之前返回。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多