尝试与https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-clients/google-cloud-storage/src/main/java/com/google/cloud进行一些 java 互操作/storage/StorageImpl.java#L139 -create带有字节数组的方法。
我的repl中有:
user=> (->> s r/reflect :members
(filter #(instance? clojure.reflect.Method %))
(filter #(:public (:flags %)))
(filter #(= (str (:name %)) "create"))
(print-table [:name :flags :parameter-types]))
| :name | :flags | :parameter-types |
|--------+---------------------+------------------------------------------------------------------------------------------------------------|
| create | #{:varargs :public} | [com.google.cloud.storage.BlobInfo byte<> com.google.cloud.storage.Storage$BlobTargetOption<>] |
(还有其他的,但这似乎是最相关的。)
还:
user=> s
#object[com.google.cloud.storage.StorageImpl 0x57fb59c8 "com.google.cloud.storage.StorageImpl@57fb59c8"]
user=> blob-info
#object[com.google.cloud.storage.BlobInfo$BuilderImpl 0x1e8ce729 "com.google.cloud.storage.BlobInfo$BuilderImpl@1e8ce729"]
user=> b
#whidbey/bin "SEVZIE1ZIEdVWQ==“
但是当我打电话时.create,我得到:
user=> (.create s blob-info (bytes b))
java.lang.IllegalArgumentException: No matching method create found taking 2 args for class com.google.cloud.storage.StorageImpl
如果我尝试添加nil为第三个参数,我会得到与3 args.
我在这里遗漏了一些明显的东西吗?谢谢!
编辑:如何在 clojure 中处理 java 可变长度参数?非常相似,而且更通用(这很好)。这最终成为关于一个特定create功能签名的特定问题。
慕容3067478
猛跑小猪
相关分类