如何将此 Java 代码转换为 kotlin 代码

Posted

技术标签:

【中文标题】如何将此 Java 代码转换为 kotlin 代码【英文标题】:How to convert this Java code to kotlin code 【发布时间】:2019-11-19 10:11:52 【问题描述】:

我正在学习弹簧靴。将此Java函数转换为kotlin代码时报错。如何重写这个kotlin函数?

Java 代码:

private long saveOrderDetails(Order order) 
    @SuppressWarnings("unchecked")
    Map<String, Object> values =
        objectMapper.convertValue(order, Map.class);
    values.put("placedAt", order.getPlacedAt());
    long orderId =
        orderInserter
            .executeAndReturnKey(values)
            .longValue();
    return orderId;

Kotlin 代码:

private fun saveOrderDetails(order: Order): Long 
        val values = objectMapper.convertValue(order, Map<*, *>::class.java)
        values.put("placedAt", order.placedAt)
        return orderInserter
                .executeAndReturnKey(values)
                .longValue()
    

这是我在自动将 java 转换为 kotlin 后遇到的错误

这里,

objectMapper: com.fasterxml.jackson.databind.ObjectMapper
orderInserter: org.springframework.jdbc.core.simple.SimpleJdbcInsert

请建议如何解决这些错误。

【问题讨论】:

也许尝试删除&lt;*, *&gt; 请不要发布错误截图-将错误发布为文本 @Hullburg 删除 仍然无法正常工作 【参考方案1】:

删除&lt;*, *&gt;怎么样

            val values = objectMapper.convertValue(order, Map<*, *>::class.java)
            val values = objectMapper.convertValue(order, Map::class.java)

【讨论】:

以上是关于如何将此 Java 代码转换为 kotlin 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在 kotlin 中将纪元时间戳转换为 unix 十六进制时间戳?

Kevin Learn Kotlin:Java & Kotlin

将 Java 代码转换为 Kotlin 以实现 OnChangeListener 时遇到问题

如何读取从 Youtube API Kotlin/Java 返回的视频的持续时间

如何在IntelliJ IDEA中禁用“粘贴时将Java转换为Kotlin”?

如何将 C# 代码转换为 Kotlin 由 Json 库组成