- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Fuel 的 responseObject
时遇到问题以一般的方式。我正在尝试开发一种集中式方法,其中组件的 HTTP 响应对象已经反序列化,准备就绪。它看起来像这样:
class Controller(private val url: String) {
fun <T> call(endpoint: String): T {
return "$url/$endpoint".httpGet().responseObject<T>()
}
}
class App(private val controller: Controller) {
fun getModel() {
val model = controller.call<AppModel>("model")
// use model
}
}
Controller.call
将处理错误,并添加常见的请求参数。 JSON 的反序列化应该由 Jackson 处理(
AppModel
是 Jackson 应该自动获取的简单数据类),所以我正在使用
fuel-jackson:1.12.0
作为附加的依赖项。
Error:(35, 97) Kotlin: Cannot use 'T' as reified type parameter. Use a class instead.
call
内联(具体化 T),但这违背了拥有
private val url
的目的.
最佳答案
我认为这个问题没有简单的解决方法。
首先,如果不使用具体类型或通过对内联函数的泛型调用链传播类型参数,就无法调用具有具体类型参数的 Kotlin 内联函数,因此您必须调用 .httpGet().responseObject<T>()
来自内联函数并使用具体类型参数作为 T
.
接下来,限制内联函数可以访问的内容是有原因的。基本上,允许内联函数访问非公共(public) API 有时会破坏二进制兼容性。这在文档 here 中有描述。 .
您可以做的是,如文档中所建议的,制作 private val url: String
一个 @PublishedApi internal val
并相应地继续 inline fun <reified T> call(...)
.
如果您担心url
成为有效的公众,你可能想看看这个Q&A建议使用 @JvmSynthetic
的解决方法.
关于kotlin - 将 Fuel 的 responseObject 与通用调用站点一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585651/
在以下问题上,我需要您的帮助:无法 mock Fuel.get call 。 我尝试过的 这是服务类,将在其中调用Fuel。 class JiraService { private val l
问题 我想通过使用 Fuel 作为 Httpclient 对 API 进行同步调用来获得 get 请求的结果。我在 Android (Anko) 项目中使用 Fuel。该调用只是一个简单的获取请求,它
一直以来,对于openstack 的初学者来讲,安装往往是入门的头大难题。在e版本之前,要搭建一个基本能用的openstack 环境那是相当麻烦,自己要装机,自己搞源,自己照着文档敲命令,又没有靠谱
我有这个代码: $(window).load(function() { var DataSource = function (options)
我尝试使用复选框选择所有内容,但无法实现它。 2 all $(document).ready(function() { $('
我的 Fuel CMS/Codeigniter 安装中有一个名为“tradeusers”的简单模块。这会从数据库中的 tradeusers 表中列出站点上的贸易用户。 这意味着我的客户将能够从 CMS
我正在尝试使用燃料 ux 向导组件,如示例所示: http://exacttarget.github.io/fuelux/#wizard 但它不能正确显示。 我的代码是:
我正在使用新发布的 Fuel UX 3.1在网络应用程序中。我设法使用来自后端的数据设置了一个 Repeater 小部件,但是我只能渲染它一次。 $('#myRepeater').repeater({
我正在使用此示例将数据导入 Fuel UX 数据网格:http://dailyjs.com/2012/10/29/fuel-ux/ (显然使用我自己的 API 而不是 Flickr) 我在示例代码中看
根据documentation ,我应该能够 Hook Fuel UX 向导组件的更改事件。但对于我的生活,我无法弄清楚如何。我还是 jquery 和 javascript 的新手。 Javascri
我正在尝试将网站从 apache2 站点移动到 Azure 托管站点。我将 Azure 配置为 PHP 网站。我将网站的内容复制到 Azure 网站中。 我安装了 Pear PHP 不知道为什么,但有
我在使用 Fuel 的 responseObject 时遇到问题以一般的方式。我正在尝试开发一种集中式方法,其中组件的 HTTP 响应对象已经反序列化,准备就绪。它看起来像这样: class Cont
我使用名为“Fuel”的库从服务器获取数据,这是我的代码: button1.setOnClickListener { val jb = "{......}"
我正在开发 Fuel Framework,我需要使用 order_by title 构建查询,该查询是 varchar 但其中大多数都是数字。我需要按真正的数字顺序对其进行排序。 所以我想使用“CAS
所以我在我的网站中实现了 Fuel UX 的 TreeView 。每当它加载时,我都需要手动重新选择我想要的项目。是否可以在每次重新加载后预选某些项目? 提前致谢! 最佳答案 我从昨天开始就处于同样的
我正在尝试在一个项目中使用 Fuel UI Spinner,该项目使用 Bower 进行依赖项管理,使用 gulp.js 构建文件。 这是我的代码: gulpfile.js: ... gulp.ta
下面是我的fuelphp项目的目录结构 燃料 日志 公开 tmp 在我的公共(public)文件夹中 Assets index.php 当我点击基本 URL 以外的任何 URL 时,它会抛出以下错误
我需要向服务器发送 POST 请求。我应该传递一些参数和图像。我可以通过 Postman 执行此操作,但我无法使用 Fuel 在我的 Android 应用程序(最新的 SDK)上执行此操作。 这是我正
在 Android 应用程序中,我尝试使用 Fuel在 Kotlin 协程中发出 HTTP 请求。我的第一个尝试是在这样的包装器中使用同步模式: launch(UI) { val token
我想获取 API 请求并将请求的数据保存到数据库中。还想返回数据(即写入数据库)。我知道,这在 RxJava 中是可能的,但现在我在 Kotlin 协程中编写,目前使用 Fuel 而不是 Retrof
我是一名优秀的程序员,十分优秀!