java - 如何找到从一种类型开始,最后返回另一种类型的API链?

标签 java

例如,给定类型 URL,String 就是需要的类型。下面是一个有效的链:

new DataInputStream(new BufferedInputStream(URL.openStream()).readLine()

或者另一个依赖 Apache Commons IO 库的库:

IOUtils.toString(URL.openStream())

为了找到这样的 API 链,似乎需要一个保存所有方法签名记录的 API 索引。对于这种搜索是否有现有的解决方案?

最佳答案

听起来您正在要求类似“六度分离”的类型转换?这是个好主意。我不知道有人构建过这样的工具,但似乎利用 Maven Central 并将事物注入(inject)到可以遍历方法类型输入/输出的图表中将是一个开始。

我发现自己在 Scala 中做了很多“类型拉皮条”来完成类似的事情,但仍然是手动的。 Scala 中隐式的使用允许在调用站点代码中透明地发生这种情况。它还允许使用新方法“丰富”现有类型(通常是最终类型,如 String)。

因此,在 Java 中,对于简单的类型转换(例如字符串到 URL),您是否查看过 http://commons.apache.org/sandbox/commons-convert/它带有一些预先打包的转换,以及添加您自己的转换的方法,就像(尽管比)Scala“拉皮条”一样。

尽管如此,严格来说,您并没有将 URL 转换为字符串。您正在做的是将给定 URL 处的资源表示形式(希望是基于文本的)转换为字符串。这是一个合理的需求,但实际上并没有体现在它们所代表的类型中。您想要的是一个 TextualResource(用 URL 构造)到 String 转换器。鉴于新的 TextualResource 类型想要做一些有用的事情,它可能会在其 toString 方法中实现您的第一个示例。

关于java - 如何找到从一种类型开始,最后返回另一种类型的API链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26152050/

相关文章:

java - 从中序和层次遍历构建二叉树

java - Android:为什么我的 ArrayAdapter 没有填充?

java - 如何让用户使用 datepickerdialog 选择 future 的日期?

java - 在 Unix 上从 PKI 源 anchor 更新 Java 信任证书存储

java - 无法使用同一包的另一个文件中定义的静态方法

java - 如何聚焦到textView中新生成的文本的顶部?

java - 从 URL 获取域名/主机名的最快方法是什么?

java - 创建泛型类的公共(public)内部类的实例

java - MST 被映射到 joda 中的丹佛时区,目前是 MDT。这是 joda DateTimeZone 中的错误吗?

java - 为什么对象在单例模式中是静态的?