在Spring Boot M7和MongoDB中找不到ReflectKotlinClass

如果使用Web和MongoDB模块在start.spring.io上创建一个新的Spring Boot项目,请添加任何@Document注释类,并且将kotlin.version从1.2.10升级到1.2.21,您将得到一个NoClassDefFoundError: Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.0.M7:run (default-cli) on project demo: An exception occurred while running. null: InvocationTargetException: Error creating bean with name ‘mongoTemplate’ defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataAutoConfiguration.class]: Unsatisfied dependency expressed through method ‘mongoTemplate’ parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘mappingMongoConverter’ defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataAutoConfiguration.class]: Unsatisfied […]

正确的方式从gradle任务运行kotlin应用程序

我有简单的脚本 package com.lapots.game.journey.ims.example fun main(args: Array) { println(“Hello, world!”) } 这里是gradle任务 task runExample(type: JavaExec) { main =’com.lapots.game.journey.ims.example.Example’ classpath = sourceSets.main.runtimeClasspath } 但是,当我尝试运行任务gradle runExample我得到错误 Error: Could not find or load main class com.lapots.game.journey.ims.example.Example 什么是运行应用程序的正确方法?

从Kotlin的抽象类inheritance多个variables

我有一个抽象类与乘法variables: abstract class Animal(var name: String, var age: Int, var mother: Animal, var father: Animal, var friends: ArrayList) 现在,正如你可能猜到的那样,我想要创造出来自动物的“猫”,“狗”,“鹦鹉”等类。 但是,当我定义Cat类时,我不知道名称,年龄,…字段是什么,所以代码不能编译。 class Cat : Animal() 不编译,因为我们需要通过这里variables,我们还不知道。 另一个问题是:如何在一个类中创建一个内部类? 一只猫既有母亲也有父亲,也都是猫。

Kotlin:你可以用varargs命名参数吗?

例如,你可能有一个复杂的签名和可变参数的函数: fun complicated(easy: Boolean = false, hard: Boolean = true, vararg numbers: Int) 这应该是有道理的,你应该能够这样调用这个函数: complicated(numbers = 1, 2, 3, 4, 5) 不幸的是,编译器不允许这样做。 有没有可能使用可变参数命名参数? 有没有什么聪明的解决办法?

在kotlin中改变被覆盖的函数参数的可空性

我正在实现一个第三方库(Java)的接口。 我用下面的签名覆盖了一个函数: override fun onCallback(name: String?) { } 我可以在没有编译器的情况下更改以下内容: override fun onCallback(name: String) { } 这是什么效果? 如果底层库调用onCallback(null)会发生什么情况?

Android Studio 3.1 Canary 3 – Gradle项目同步失败

使用Android Studio 3.1 Canary 3使用Kotlin进行Android应用程序开发时,无论何时打开studio,我都会得到以下错误 Gradle项目同步失败。 基本function(如编辑调试)将无法正常工作 这不是在Android studio3.0及以上版本内置的kotlin相关的问题,但Kotlin插件的

运行时权限请求不起作用

我正在尝试使用Kotlin的“运行时”权限来运行我的第一个Android应用程序,根据我对此示例的理解,但是权限请求对话框从不出现。 在提到的参考示例中编写Java代码的Kotlin等价物时,是否有任何错误? 应用程序假定在点击按钮时调用预定义的号码。 string.xml : Kotlin Call activity_main.xml MainActivity.kt : package com.example.home.kotlin import android.Manifest import android.app.AlertDialog import android.content.DialogInterface import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button import android.widget.Toast class MainActivity : AppCompatActivity() { private var mCall: Button? = null private var callIntent: Intent? = null override fun onCreate(savedInstanceState: Bundle?) […]

我可以推迟使用Kotlin Android扩展适配器的视图绑定

Kotlin Android扩展提供了一种直接在Activity / fragment / Adapters中使用ID的方法。 所以我想要的是适配器的通用方式,并将绑定视图职责留给适配器的用户,而不是适配器本身。 例如 : class GenericAdapter( @LayoutRes private val layoutId: Int, private var list: List, inline private val bind: (View, T, Int) -> Unit) : RecyclerView.Adapter() { override fun onBindViewHolder(holder: InnerHolder?, position: Int) { holder?.containerView?.let { bind(holder.containerView, list[position], position) } } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): InnerHolder = InnerHolder(LayoutInflater.from(parent?.context).inflate(layoutId, […]

Kotlin – 用重复元素创建一个可变列表

什么是一种惯用的方法来创建一个给定长度为n的可变列表,并重复值为v元素(例如listOf(4,4,4,4,4) )作为expression式。 我正在做val list = listOf((0..n-1)).flatten().map{v}但它只能创建一个不可变的列表。

如何在kotlin中创建一个重复的对象数组?

我知道如何创建一个循环,但我想知道是否有一个更简单的方法? 例如,我想要创建一个Point数组,它们都将具有(0,0)或者通过索引增加x,y 。