小编fbo*_*kov的帖子

junit-jupiter-api和junit-jupiter-engine之间的区别

maven模块junit-jupiter-api和有什么区别junit-jupiter-engine?是否有必要包含两个依赖项build.gradle

我是否需要编写两个依赖项

testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
testCompile("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
Run Code Online (Sandbox Code Playgroud)

要么

testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
Run Code Online (Sandbox Code Playgroud)

足够?

我需要添加依赖junit-vintage-engine吗?

java junit junit5

32
推荐指数
3
解决办法
4761
查看次数

Kotlin 和 Jackson - 尝试解析简单类型的子类型时缺少类型 ID

我有一个 Kotlin 密封类 -Pet和两个子类 -DogCat. 我的应用程序需要传输以 JSON 序列化的宠物集合。为了区分子类,我使用 Jackson@JsonTypeInfo@JsonSubTypes注释。清单如下:

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes(
    JsonSubTypes.Type(value = Dog::class, name = "dog"),
    JsonSubTypes.Type(value = Cat::class, name = "cat")
)
sealed class Pet { abstract val name: String }

data class Dog(override val name: String): Pet()
data class Cat(override val name: String): Pet()
Run Code Online (Sandbox Code Playgroud)

单个实例已正确序列化和反序列化:

    @Test
    fun `serialize dog`() {
        val dog = Dog("Kevin")
        val dogJson = objectMapper.writeValueAsString(dog)

        JsonAssert.assertEquals(dogJson, …
Run Code Online (Sandbox Code Playgroud)

java json jackson kotlin

8
推荐指数
1
解决办法
7583
查看次数

具有重复键的 Kotlin toMap 收集器

我正在寻找带有参数的KotlinJava 流收集器的类似物。Collectors.toMapmergeFunction

例如,在 Java 中为了计算 String 中的字符数,可以使用以下代码片段:

Map<Character, Integer> charsMap = s2.chars()
            .mapToObj(c -> (char) c)
            .collect(Collectors.toMap(Function.identity(), s -> 1, Integer::sum));
Run Code Online (Sandbox Code Playgroud)

如果我们将 Java 代码片段转换为 Kotlin,由于显式类型的使用,它看起来相当难看。

private fun countCharsV2(word: String): Map<Char, Int> {
    return word.chars()
        .mapToObj { it.toChar() }
        .collect(
            Collectors.toMap(
                Function.identity(),
                Function { 1 },
                BinaryOperator { a: Int, b: Int -> Integer.sum(a, b) }
            )
        )
}
Run Code Online (Sandbox Code Playgroud)

有类似行为的 Kotlin 收集器吗?

java kotlin java-stream

5
推荐指数
1
解决办法
1707
查看次数

Kotlin 中 setOf 和 hashSetOf 的区别

下面的代码片段setOfStringshashSetOfStrings产生的有什么区别?

val setOfStrings = setOf("A", "B", "C")
val hashSetOfStrings = hashSetOf("A", "B", "C") 
Run Code Online (Sandbox Code Playgroud)

它们总是具有相同的类型吗?性能一样吗?

kotlin

3
推荐指数
2
解决办法
1615
查看次数

Kotlin“^=”运算符

Kotlin 是否有类似于 Java 的^=(异或和赋值)运算符?

例如,在Java中我们可以简单地写

a ^= b
// a = a ^ b
Run Code Online (Sandbox Code Playgroud)

看起来在 Kotlin 中我们需要显式地赋值

a = a xor b
Run Code Online (Sandbox Code Playgroud)

是否可以避免aKotlin 代码中变量的重复?

kotlin

3
推荐指数
1
解决办法
2109
查看次数

Kotlin 从地图中通过键获取值

假设我们有一张地图:

val charToCount = mapOf('a', 3)
Run Code Online (Sandbox Code Playgroud)

任务是3通过相应的键检索值。问题是map.get(...)返回可空类型T?而不是T. 如果可以保证映射中存在键和相应的值,那么将值转换为不可为空类型的最佳实践是!= null什么?

在我的头顶有两种方法:

  1. val count = charToCount['a']!!
  2. val count = charToCount['a'] ?: error("...")

但两者似乎都不简洁。有没有更好的方法来消除可空类型?

java kotlin

0
推荐指数
1
解决办法
59
查看次数

标签 统计

kotlin ×5

java ×4

jackson ×1

java-stream ×1

json ×1

junit ×1

junit5 ×1