如何将Kotlin列表拆成子列表?

我怎样才能把Kotlin中的一个表列成两个子列表呢? 目前我做这样的事情: val (first, rest) = listOf(“one”, “two”, “three”) 但是这样做,首先是“一”,rest是“二”。 我希望他们是first =[“first”]和rest = [“two”, “three”] 。 这甚至可以使用这个“析构函数”语法?

Kotlin适配器中的ViewHolder中的SetOnClickListener

我正在尝试在Kotlin中编写我的第一个RecyclerView自定义适配器。 每个View都非常简单,它是一个带有图片+名称的CardView 。 我面临两个问题: 错误1 – fun bindItems给我错误,当我尝试以下指定名称: // THIS DOES GIVE ME ERROR, IT MARKS txvW_recycItem_userName IN RED itemView.txvW_recycItem_userName = user.name // HOWEVER THIS WORKS val tvw_name = itemView.findViewById(R.id.txvW_recycItem_userName) as TextView tvw_name.text = user.name 错误2 – onBindViewHolder不允许我添加这样一个监听器: holder.bindItems(user[position]) holder.setOnClickListener{ //do whatever } 这里是适配器的完整代码: class CustomRecyclerAdapter(var user : ArrayList) : RecyclerView.Adapter(){ override fun onCreateViewHolder(parent: ViewGroup, […]

Kotlin NoClassDefFoundError和spring @RequestMapping方法

我试图用Kotlin + IntelliJ来学习一些spring的基础知识,而且我遇到了一些麻烦。 @RequestMapping带注释的方法(带参数)会导致exception,而Java等价物完全正常。 Kotlin代码工作正常,但只有没有“processFormTwo”方法(将工作Java代码转换为kotlin也无济于事)。 这里是代码: @Controller class HelloWorldController { @RequestMapping(“/showForm”) fun showForm() = “helloworld-form” // this one works fine @RequestMapping(“/processForm”) fun processForm() = “helloworld” //this one doesn’t @RequestMapping(“/processFormTwo”) fun processFormTwo(request: HttpServletRequest, model: Model): String { var theName = request.getParameter(“studentName”) theName = theName.toUpperCase() val result = “Yo! ” + theName model.addAttribute(“message”, result) return “helloworld” } […]

IntelliJ Idea 2017.3无法启动Kotlin Spring Boot App – @Configuration类可能不是最终的

我能够从IntelliJ 2017.3推出一个春季启动Kotlin应用程序。 在最后一次IntelliJ修复更新后,我无法从IDE启动该应用程序,得到此exception: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Configuration class ‘AccessConfig’ may not be final 我可以像往常一样从终端启动它: java -jar xxxx.jar 这是没有任何意义的,因为我在我的Gradle配置中使用必要的Kotlin Spring插件: buildscript { ext { kotlinVersion = ‘1.2.21’ springBootVersion = ‘2.0.0.RC1’ } repositories { mavenCentral() maven { url “https://repo.spring.io/snapshot” } maven { url “https://repo.spring.io/milestone” } jcenter() maven { url “https://plugins.gradle.org/m2/” } } dependencies { classpath(“org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}”) classpath(“org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}”) classpath(“org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}”) […]

为什么一些Java的setter方法自动成为Kotlin的属性,但有一些不是?

例如这个WebSettings Java类。 它有一个Java方法setJavaScriptEnabled(boolean) ,它变成如下的Kotlin属性javaScriptEnabled ,但也有setSupportZoom(boolean) ,它不会变成Kotlin属性supportZoom 。 settings.javaScriptEnabled = true settings.domStorageEnabled = true settings.setSupportZoom(false) settings.builtInZoomControls = false settings.setSupportMultipleWindows(true)

在Kotlin中相当于C ++ Enum

我想解决的问题是: 我有一个元素列表。 名单可以很大,可以有很多。 我想通过索引访问它们。 对于那些索引我想用单词而不是数字。 我也想这个词是强types的,所以我不能混合数字。 我相信Kotlin枚举对于这个不好,因为每个枚举本身都是一个对象实例。 我可以使用Int常量,但是然后我失去了types安全性。 在c + +这个问题是由一个枚举解决的。 枚举可以被转换成它们的底层types(在编译时)被用作索引。 在相同的types中,Enum是一个types,如果一个函数将其作为参数,编译器将不允许传入整数。枚举本身不是对象本身,因此您可以拥有尽可能多的性能而不会影响性能。 C ++代码示例来显示我在找什么: string someArray[] = {“element 0”, “element 1”}; enum class Index { first = 0, second = 1, }; string getElement(Index i) { return someArray[(int)i]; } void foo() { auto element0 = getElement(Index::first); auto element1 = getElement(1); // compile time error […]

如何将HtmlUnit包含在Kotlin项目中

我正在尝试在Kotlin项目中使用HtmlUnit ,但编译时出现以下错误: Error:Kotlin: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath: class com.gargoylesoftware.htmlunit.html.DomElement, unresolved supertypes: ElementTraversal 这是因为ElementTraversal是一个Java 7function。 我该如何解决这个问题?

搜索kotlin空数据类主构造函数的解决方法

用给定的kotlin代码: sealed class Event(val id:String= UUID.randomUUID().toString(), val timestamp:Instant = Instant.now()) data class BarEvent(val additionalInfo:String):Event() object FooEvent:Event() // data class CorrectFooEvent():Event() // invalid kotlin fun main(args: Array) { val b1 = BarEvent(“b1”) val f1 = FooEvent Thread.sleep(1000) val b2 = BarEvent(“b2”) val f2 = FooEvent println(“${b1.id} ${b1.timestamp} $b1”) println(“${f1.id} ${f1.timestamp} $f1”) println(“${b2.id} ${b2.timestamp} $b2”) println(“${f2.id} ${f2.timestamp} […]

伴侣对象块和kotlin类外的趣味之间的区别?

我正在学习kotlin,最近发现了写kotlin的一个有趣的方式,但是不能真正理解它。 采取了我从这里学习的代码 fun drawerImageLoader(actions: DrawerImageLoaderKt.() -> Unit): DrawerImageLoader.IDrawerImageLoader { val loaderImpl = DrawerImageLoaderKt().apply(actions).build() DrawerImageLoader.init(loaderImpl) return loaderImpl } class DrawerImageLoaderKt { … } 为什么要在类的外面定义drawerImageLoader ? 为什么不能在class级和companion object块内? 另外,在DrawerImageLoaderKt.()中.()是什么意思?

使用maven在kotlin中编写JSP – 错误实例化Servlet类,ClassNotFoundException

所以我一直在尝试JSP一段时间,我想用它和kotlin和maven,我有一些问题, 它抛出ClassNotFoundException,这里是我的文件: web.xml中 Archetype Created Web Application Servlet com.erezbiox1.Servlet Servlet /test 的pom.xml 4.0.0 com.erezbiox1 KotlinJsp war 1.0 KotlinJsp http://maven.apache.org junit junit 3.8.1 test org.jetbrains.kotlin kotlin-stdlib 1.2.0 javax.servlet servlet-api 2.5 KotlinJsp org.jetbrains.kotlin kotlin-maven-plugin 1.2.0 compile compile compile Servlet.kt // Tried with, and without this: @file:JvmName(“Servlet”) package com.erezbiox1 import javax.servlet.http.HttpServlet import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse class Servlet : […]