Tag: Java

ArrayList,IntArray和Array 不同之处

我是Java和Kotlin的新手。 最近当我在学习Kotlin的同时阅读教程。 我发现有一些Array/List混淆了我。 ArrayList , IntArray和Array什么不同? 我应该什么时候使用它们?

在Kotlin中可以使用Mockito吗?

我面临的问题是Matchers.anyObject()返回null 。 当用于模拟只接受不可为空的types的方法时,会导致抛出“不应为空”的exception。 `when`(mockedBackend.login(anyObject())).thenAnswer { invocationOnMock -> someResponse } 嘲笑方法: public open fun login(userCredentials: UserCredentials): Response

排序可能包含数字的字符串

我需要编写一个比较字符串的Java比较器类,然而只有一个转折点。 如果它比较的两个字符串在字符串的开始和结尾是相同的,并且不同的中间部分是整数,则根据这些整数的数值进行比较。 例如,我需要下列字符串才能显示出来: AAA bbb 3 ccc bbb 12 ccc ccc 11 DDD eee 3 ddd jpeg2000 eee eee 12 ddd jpeg2000 eee 正如你所看到的,字符串中可能还有其他整数,所以我不能只用正则expression式来分解任何整数。 我想从一开始就走字符串,直到find一个不匹配的位,然后从最后走到最后find一个不匹配的位,然后比较中间位和正则expression式“[0-9] +”,如果比较,则进行数字比较,否则进行词法比较。 有没有更好的办法? 更新我不认为我可以保证字符串中的其他数字,可以匹配的数字,周围没有空格,或者不同的数字有空格。

如何创建Ktor嵌入式服务器的.jar(创建可执行文件)

我对Kotlin,Ktor和Gradle很新。 能够创建嵌入式服务器,如Ktor站点中所述,使用以下代码: BlogApp.kt : package blog import org.jetbrains.ktor.netty.* import org.jetbrains.ktor.routing.* import org.jetbrains.ktor.application.* import org.jetbrains.ktor.features.* import org.jetbrains.ktor.host.* import org.jetbrains.ktor.http.* import org.jetbrains.ktor.response.* fun Application.module() { install(DefaultHeaders) install(CallLogging) install(Routing) { get(“/”) { call.respondText(“My Example Blog sfs 122”, ContentType.Text.Html) } } } fun main(args: Array) { embeddedServer(Netty, 8080, watchPaths = listOf(“BlogAppKt”), module = Application::module).start() } 并build.gradle : group ‘Example’ […]

Kotlin:指定的types参数会导致Gson失败

我遇到了一个奇怪的行为,使用reifiedtypes的函数内的Gson反序列reified 。 只有当interfaces涉及到types参数时才会发生。 采取以下代码: val toBeSerialized = listOf(“1337”) with(Gson()) { val ser = toJson(toBeSerialized) val deser = fromJson<List>(ser) } 第4行使用自定义扩展函数Gson.fromJson(json: String): T 。 如果T被定义为物化,它就会失败 : inline fun Gson.fromJson(json: String): T = fromJson(json, object : TypeToken() {}.type) 如果它被定义为一个正常的types参数,它就可以工作 : fun Gson.fromJson(json: String): T = fromJson(json, object : TypeToken() {}.type) (请注意,使T化在这里没有意义,只是想了解它在特殊用例中的影响) 使用reified外观时的例外情况如下: Exception in thread “main” java.lang.RuntimeException: […]

如何使用Firebase 1.0.2忽略对象模型的新字段

我正在使用Firebase依赖关系的最新版本,这是1.0.2,我有问题得到正确解析我的pojos。 事情是,在任何时候架构可以改变,但我不希望我的应用程序崩溃与此: D / AndroidRuntime(14097):关闭虚拟机W / dalvikvm(14097):threadid = 1:线程退出与未捕获的exception(组= 0x40a451f8)E / AndroidRuntime(14097):致命例外:主E / AndroidRuntime(14097):com .firebase.client.FirebaseException:无法popup键入E / AndroidRuntime(14097):at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:213) 查看依赖关系树,我发现Firebase使用的是Jackson mapper 1.9.7,所以注解@JsonIgnoreProperties(ignoreUnknown = true”)不是一个选项,而且对象映射器被封装在这个Firebase对象中,所以我不能配置DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES属性( DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES为jackson1.9和之前)。 有什么办法设置这个属性,无论是作为一个类级别的注释或配置映射器或任何其他机制? 最好的解决方案是,Firebase 1.0.3开始使用Jackson 2.0,但不知道这是否是他们现在关心的事情。 注意:我已经考虑过排除传递的Jackson 1.9.7依赖,并添加Jackson 2.0,以便我可以访问这个ignoreUnknown特性,但是我不认为这是一个可行的选择,因为我会改变市长版本。

Kotlin okhttp3更改json方法为“Post”

val request = Request.Builder() .url(url) .method(“POST”,null) .addHeader(“_Token”,””) .addHeader(“Content-Type”,”application/json”) .build() 这段代码抛出一个exception。 如何添加方法types和标题? 谢谢你的回复。 引起:java.lang.reflect.InvocationTargetException引起:java.lang.IllegalArgumentException:方法POST必须有一个请求体。

Java / Kotlin使用generics返回types为访问者模式强制转换exception

我试图使用类似访问者模式, 但与返回值。 但是,虽然没有明确的转换,但我得到一个ClassCastException: Exception in thread “main” java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.CharSequence; at Printer.combine(…) at Split.accept(…) at MWEKt.main(…) 码: interface TreeElem { fun accept(visitor: TreeVisitor): T } class Leaf: TreeElem { override fun accept(visitor: TreeVisitor): T { return visitor.visit(this) } } class Split(val left: TreeElem, val right: TreeElem): TreeElem { override fun accept(visitor: […]

Kotlin:如何在运行时在OneClass 中获得实际的genericstypesT.

朋友们! 我是Kotlin的绿手,现在这是一个问题。 现在我想在OneClass中获得genericstypesT,下面是一些外围代码。 // IDatabase.kt package com.ra abstract class IDatabase { } // Database1.kt import kotlin.reflect.jvm.javaType open class Database1: IDatabase() { val tClass = this::class.supertypes[0].arguments[0].type!!.javaType as Class } // Database2.kt import kotlin.reflect.jvm.javaType open class Database2: IDatabase() { val tClass = this::class.supertypes[0].arguments[0].type!!.javaType as Class // just wrap a `object` to confort the user companion object { […]

在Parent类中声明与Child类相同的属性

我最近已经注意到Kotlin,并有Java的经验。 在Java中,我们可以使用与父类相同的名称声明该字段。 当我在Kotlin做同样的事情时,它给出name hides member of Super type User错误name hides member of Super type User 。 我在这里错过了什么? 科特林 open class User(protected var name: String) class TwitterUser(var name: String) : User(name) Java的相同概念 public class A { protected String name; } public class B extends A { String name; }