You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clojure使用Mongo Java驱动时如何将字符串列表转为ServerAddress对象列表

解决方案

首先确保你在命名空间声明中导入了ServerAddress类,如果需要和原Java逻辑一致生成LinkedList还需要导入java.util.LinkedList:

(ns 你的命名空间路径
  (:import com.mongodb.MongoClientURI
           com.mongodb.ServerAddress
           java.util.LinkedList))

在你已有代码的基础上,用map遍历所有主机字符串,逐个构造ServerAddress实例即可:

;; 你已有的代码
(def uri (MongoClientURI. "mongodb://xxx:***@url:27017/test?readPreference=primary"))
(def hosts (.getHosts uri))

;; 转换为ServerAddress类型的序列,Clojure环境下直接使用这个即可
(def server-address-seq (map #(ServerAddress. %) hosts))

;; 如果要和原Java逻辑完全对齐,生成LinkedList类型的服务列表用于Java方法交互
(def server-list (into (LinkedList.) server-address-seq))

上述代码和你给出的Java循环逻辑完全等价,匿名函数里的%代表每次遍历拿到的单个主机字符串参数。


内容的提问来源于stack exchange,提问作者arjunsv3691

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:39:03