第一步:将左括号一个令牌移动到左侧,添加一个doto
链接方法应用程序:
(def tokenOpts (doto (TokenOptions/Builder)
(.role Role.MODERATOR)
(.expireTime (System.currentTimeMillis() / 1000) + (7 * 24 * 60 * 60)) // in one week
(.data connectionMetadata)
(.build));
然后在每个方法的参数上“重复”:
(def tokenOpts (doto (TokenOptions/Builder)
(.role Role/MODERATOR)
(.expireTime (+ (System.currentTimeMillis() / 1000)
(7 * 24 * 60 * 60)) // in one week
(.data connectionMetadata)
(.build));
然后“递归”到这些函数的参数(请注意,我在这里切换到函数这个词,因为此时我们已经脱离了 Java 思维模式:
(def tokenOpts (doto (TokenOptions/Builder)
(.role Role/MODERATOR)
(.expireTime (+ (/ (System/currentTimeMillis) 1000)
(* 7 24 60 60))) ;; in one week
(.data connectionMetadata)
(.build))
您需要在命名空间声明(文件顶部的块)中添加 (:import .....) 以确保您在这些名称下具有可用的 Roll 和 TokenOptions 类。