我用了 日食火星 jdk8 tomcat8 kotlin 1.0 即时处理java-> kotlin在spring项目 我在pom.xml中添加这个代码 1.0.0 … org.jetbrains.kotlin kotlin-stdlib ${kotlin.version} …. maven-eclipse-plugin 2.9 org.springframework.ide.eclipse.core.springnature org.springframework.ide.eclipse.core.springbuilder true true org.apache.maven.plugins maven-compiler-plugin 2.5.1 1.6 1.6 -Xlint:all true true org.codehaus.mojo exec-maven-plugin 1.2.1 org.test.int1.Main org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version} compile process-sources compile src/main/kotlin test-compile process-test-sources test-compile src/test/kotlin 但是当tomcat启动或创建为war文件时,不要将.kt文件进行complile .kt和.java文件在同一个包中混合使用 顺便说一句,当你启动tomcat或创建war文件,.java文件被编译但.kt文件不是 因此在WEB-INF / classes目录中存在.class(是.java的结果)和.kt文件(不是编译的) 这张图片是WEB-INF / classes目录 类文件夹 如何编译.kt文件?
android.R.attr.selectableItemBackground存在,但如何将它以编程方式添加到ImageButton? 另外,我将如何去find在文档中的答案? 在这里提到,但是我没有看到如何实际使用的任何解释。 其实,我似乎很少看到文档有用,但我希望这是我的错,而不是文档。
我有一个Android Clean Architecture项目,在Kotlin中有三个模块: 数据(Android库) domaine(Java库) 演示(Android应用程序) 这3个模块都有用junit编写的unit testing 。 但是对于Kotlin,每个课程都是默认的最终课程。 我很快就遇到了问题: 如何用mockito来嘲笑最后一堂课 现在可以用Mockito 2 可以通过mockito扩展机制来完成,方法是创建包含一行的文件/mockito-extensions/org.mockito.plugins.MockMaker : mock-maker-inline 此解决方案在数据模块(Android库)和表示模块(Android应用程序)上运行良好, 但在我的domaine模块(Java库)上不起作用 。 我知道这个问题已经被问到( 如何用mockito来模拟最后一个类 , Mock对象用Mockito来调用最终类的静态方法 ),但是我没有find我正在寻找的答案。
我怎样才能让它在kotlin使用for循环? for (double i = 0; i < 10.0; i += 0.25) { System.out.println("value is:" + i); }
有没有办法链接多个让kotlin中的多个可为空的variables? fun example(first: String?, second: String?) { first?.let { second?.let { // Do something just if both are != null } } } 我的意思是,这样的事情: fun example(first: String?, second: String?) { first?.let && second?.let { // Do something just if both are != null } }
我试图创建一个少数类的层次结构,每个类都覆盖父类的内部类中的一些行为(特别是迭代器,但没关系)。 基本上,它看起来像这样: open class SuperClass{ protected open inner class InnerClass{ fun someLogic(){ println(“some logic happened”) } open fun someOverridableLogic(){ println(“some logic happened”) } } } class ChildClass : SuperClass(){ protected inner class ChildInnerClass:InnerClass{ override fun someOverridableLogic(){ super.someOverridableLogic() println(“some OTHER logic happened”) } } } 编译器拒绝使用此代码,当ChildInnerClassinheritance它时,需要InnerClass上的types参数。 但是,添加这样的参数后: protected inner class ChildInnerClass:InnerClass 编译器突然不期待任何types的参数! 相当于Java的Java编译和按预期执行,没有types参数: public class SuperClass […]
在我的测试中, 我检查我登陆的每个页面的标题文本。 例如,我可以将文本与“登录”(例如R.id.toolbar_text )相匹配,查看它是否通过或失败。 但是,我想知道它是否失败,我在R.id.toolbar_text对象中有什么文本。 在Espresso Android中可以使用getText()选项吗? 我如何从ID中提取文本?
如何使用while循环与kotlin android中的responseInputStream.read 这里添加了responseInputStream read while循环.kt val responseInputStream = conn.inputStream val responseStringBuffer = StringBuffer() val byteContainer = ByteArray(1024) var i: Int while ((i = responseInputStream.read(byteContainer)) != -1) { responseStringBuffer.append(String(byteContainer, 0, i)) } Log.w(“TAG”, “res :” + responseStringBuffer.toString())
的build.gradle buildscript { ext.kotlin_version = ‘1.1.51’ repositories { jcenter() mavenCentral() maven { url “https://jitpack.io” } } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0’ classpath ‘me.tatarka:gradle-retrolambda:3.6.1’ classpath ‘com.google.gms:google-services:3.1.0’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } 应用程序/的build.gradle buildscript { repositories { jcenter() } dependencies { classpath ‘com.jakewharton:butterknife-gradle-plugin:8.7.0’ } } android{ compileSdkVersion = 26 buildToolsVersion = “26.0.2” defaultConfig { minSdkVersion = 16 targetSdkVersion = […]
考虑一下Java类推断它的types的方法如下: public T readJson(Class c) throws IOException { 这允许做这样的事情: Map map = foo.readJson(Map.class); 在Java中,它会警告未经检查的强制转换,但它将正常工作。 但是在Kotlin中,这不会那么容易,可以尝试使用: foo.readJson(Map::class.java) 但是,如果Map是必需的,它将不起作用: Type inference failed. Expected type mismatch. required Map found Map! 我也试过定义一个接口StringMap: interface StringMap : Map 但是,这也不起作用,它会导致这样的例外: Cannot cast …LinkedTreeMap to …StringMap 什么是这样做的正确方法?