Kotlin Dokka’html-as-java’格式不生成java

我正在尝试使用Kotlin Dokka作为项目文档,并且工作正常,除了当我需要使用html-as-java格式。 我到目前为止尝试过其他格式,例如html和javadoc 。 这些按预期工作。 但是对于我来说html-as-java的结果似乎和html 。 有没有人遇到过这个问题? 也许我错过了一些东西。 谢谢

Kotlin:将类的实例转换为动态types

我有一个关于在Kotlin铸造的问题。 我想要通过解析JSON来生成一个对象。 它应该被投射的types将被动态地确定。 这是我在下面的一段代码的评论中解释的问题: // interface for objects that are received as json interface Bundle // many data classes implementing the Bundle interface // eg data class DailyPostBundle(/* … */) : Bundle data class CreatePostBundle(/* … */ : Bundle // … val data = /*json string representing a Bundle*/ // logic: // does this function […]

为什么对象expression式中的代码可以访问kotlin中包含它的作用域的variables?

在Kotlin中,对象expression式中的代码可以从包含它的作用域访问variables,就像下面的代码一样: fun countClicks(window: JComponent) { var clickCount = 0 var enterCount = 0 window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { clickCount++ } override fun mouseEntered(e: MouseEvent) { enterCount++ } }) } 但为什么? 在Java中,不允许这样做,因为对象的生命周期与本地variables不同,所以当您尝试访问对象时, enterCount或clickCount可能无效。 有人能告诉我Kotlin是如何做到这一点的吗?

Android Studio Lint检查Kotlin高阶函数

我已经看到下面这个高阶函数的例子被用作一个方便的方法来包装Android API版本检查。 fun isLollipop(func: () -> Unit) { if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { func() } } 但是,在Android Studio 3.0(Kotlin版本1.2.0)中,如果我尝试使用需要Lollipop的API(该项目的minSdk为17),则会看到lint错误。 例如: isLollipop { appBarLayout.elevation = 4f } Lint抱怨elevation属性上的API最小值。 正如一个侧面说明,如果您将函数编写为inline fun函数,则无关紧要,lint仍会提供相同的警告。 使用内联函数,反编译的Java代码显然被版本检查包围。 我刚才发现了这个讨论,但似乎Kotlin团队已经整合了支持。 https://youtrack.jetbrains.com/issue/KT-7729 lint系统是否支持查看高阶函数?

函数参数和对象的Kotlinunit testing

在Kotlin中,我们可以将函数对象作为函数参数传入。 如何创建unit testing来测试函数对象逻辑? (例如下面的funcParam ) 如何对具有函数参数的函数进行unit testing? (例如下面的functionWithFuncParam ) – 即我可以创建一个模拟funcParam ? class MyClass1(val myObject: MyObject) { val funcParam = fun (num: Int): Int { return num * num } fun myFunctionOne() { myObject.functionWithFuncParam(funcParam) } } class MyObject () { fun functionWithFuncParam(funcParam: (Int) -> Int) { println(funcParam(32)) } }

Android webview与kotlin。 不工作输入types=文件

我想显示我的网站作为Android应用程序。 在我的代码中,不起作用input type=file 我google搜索“android webview输入types文件不工作”。 但只有java解决方案。 我想用kotlin解决这个问题。 任何人都知道如何解决这个问题? class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) loadWebpage() } @Throws(UnsupportedOperationException::class) fun buildUrl(authority: String) : Uri { val builder = Uri.Builder() builder.scheme(“https”) .authority(authority) return builder.build() } fun loadWebpage() { try { val url = buildUrl(“uploader.xzy.pw”) webview.loadUrl(url.toString()) } catch(e: UnsupportedOperationException) { e.printStackTrace() } } […]

如何修复Kotlin中的警告:不建议使用命名forms将单个元素分配到可变参数

在将Kotlin从1.1.4升级到最新的1.2.22之后,我得到了很多构建警告: [WARNING] … (422, 29) Assigning single elements to varargs in named form is deprecated 相关的代码是这样的: 422 @RequestMapping(value = “/privacy”, method = arrayOf(RequestMethod.GET)) 423 fun mainLinkPrivacy(request: HttpServletRequest, model: MutableMap): String { 424 425 var lang = request.getParameter(“lang”) 426 427 if(lang == null || lang.isEmpty()) 428 lang = “EN” 429 430 model.put(“lang”,lang) 431 432 return “/mobile/main/mainlink_privacy” […]

在混合Java / Kotlin项目中使用Dagger 2的Maven配置

什么是在混合Java / Kotlin项目中使用Dagger 2的建议Maven设置? 我find了一个使用Gradle的示例项目: https : //github.com/damianpetla/kotlin-dagger-example与Maven类似的东西会非常有帮助。 更新:我试过了什么? 我使用了kotlinlang.org/docs/reference/using-maven.html中的Kotlin配置和google.github.io/dagger中的Dagger配置。 我还使用了build-helper-maven-plugin插件来将注释处理集成到IDEA中。 我的主要问题是我遇到了编译周期。 我的配置混合了Kotlin的编译和调用生成Dagger2类的注释处理器。 我无条件地尝试分离两个阶段,但缺乏更深入的Maven了解它的工作。

用于将方法参数分配给Android Studio中的字段的Kotlin快捷方式

在Android Studio中,当我按下Alt + Enter并将方法参数分配给类成员字段时,正在处理Java类。 但是,当我使用Kotlin没有建议这个function。 我可以为此创建一个新的建议还是有任何方法来分配参数的字段? Java类建议: Kotlin课堂建议:

是否有可能用Kotlin val(property)重写Java getter(method)?

例如: Java的: public class Foo { public int getSomething() { return 1; } } 科特林: class Bar : Foo() { // works override fun getSomething() = 2 // doesn’t work (‘something’ overrides nothing) // override val something = 2 } 我认为val something = 2将被转换为public int getSomething() { return 2; } public int getSomething() { return […]