- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我有一个名为 ChannelBase 的类,它是 Slack 中所有 channel 类型事物的父类(super class)(基本上只是 channel 和组,因为 MPIM 不再被视为组)
在 ChannelBase 中有一个 abstract class ChannelCompanion<T : BaseChannel<T>>
(泛型是子类的类型,又名 Channel
或 Group
)。然后子类让它的伴生对象扩展 ChannelCompanion,这迫使它有一个 fromJson(JsonObject)
函数,并为伴随对象提供 inline fun start(callback: () -> Unit)
从 Slack API 收集 channel 列表并对其进行解析。
所以基本上这就是我们所拥有的,假设我们正在注册 Channel
类(class)。
当Channel.start { }
(继承自 ChannelCompanion)被调用,这是应该发生的事情:
-> 调用 ChannelCompanion.start { }
-> 异步向一个 Slack 团队的 channels.list 方法发出 HTTP 请求
-> 解析 JSON 并检索 Channel JsonObjects 数组
-> 使用 Channel.fromJson(JsonObject)
将每个 JsonObject 解析为 Channel 对象(ChannelCompanion 中的抽象乐趣)
问题是当 Channel.fromJson
被调用,线程卡住。没有错误或异常,它只是卡住。如果你不理解它的结构(很难解释),这里是存储库:https://github.com/Deanveloper/SlaK/tree/master/src/main/kotlin/com/deanveloper/slak/channel
调试代码显示程序在Channel.fromJson
时卡住叫做。第一行Channel.fromJson
是打印该函数已运行,但不打印。不过,它被调用之前的行会被打印出来。不太确定这里发生了什么。
需要注意的是,虽然有多个线程,但在发出 HTTP 请求后,这些都在同一个线程中执行。
如果你想克隆存储库并自己测试,https://github.com/Deanveloper/SlaK .在 JUnit 测试目录中,转到 BaseTest 并将加密的 API key 替换为您自己的 Slack 团队的 API key
最佳答案
这是由内联引起的,因为 fromJson 函数具有 protected 范围。因为函数是内联的,所以 fromJson 函数实际上是从包外部调用的(因为 start 方法是从包外部调用的)。这导致了 IllegalAccessError。
关于kotlin - 方法没有被调用,没有错误,可能与泛型/伴随对象/继承/并发/内联有关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462810/
我有两个伴随的仿函数,即它们成对出现如果一个是 doX() ,另一个将是 undoX()。 它们是这样声明的: template struct doSomething{
我想看看是否有任何工具或引擎可以将 Ecore(元)模型转换为合金规范? 如果它在考虑伴随的 OCL 表达式的情况下进行这种翻译,那就太好了 :) 谢谢 最佳答案 关于在 Alloy 和 UML 之间
所以我正在按照 ASP.NET 和 MVC 5 一书中的示例进行操作。这是导致错误的 View : @model SportsStore.WebUI.Models.ProductsListViewMo
我是一名优秀的程序员,十分优秀!