intellij-idea - 注释中如何处理 Kotlin 多行字符串?

标签 intellij-idea kotlin

我正在使用 Intellij 使用 JPA 编写 Kotlin 存储库。我转换了一个现有的 Java 类,它有一个特别长的 @Query 字符串。

@Query("SELECT a.column1, a.column2, b.column3, b.column4, b.column5, b.column6) FROM TableA as a JOIN TableB as b ON a.id = b.foreignKeyId WHERE a.column1 = :column1 AND b.column2 = :column2 AND b.column3 IN :column3Values")

公共(public)列表 someFancyMethodName(...);

转换为 Kotlin 后,我将注释参数转换为多行字符串并开始插入换行符。 Intellij,(有帮助?),插入用于处理边距的管道。

它最终看起来像这样。
@Query("""SELECT a.column1, a.column2, b.column3, b.column4, b.column5, b.column6)
    | FROM TableA as a
    | JOIN TableB as b ON a.id = b.foreignKeyId
    | WHERE a.column1 = :column1
    | AND b.column2 = :column2
    | AND b.column3 IN :column3Values""")
fun someFancyMethodName(...): List<SomeFancyReturnValue>

我的第一个想法是这不适用于嵌入式管道,并且 Intellij 不应该将它们插入注释参数中。或者当多行字符串是注释参数时,在编译时删除管道是否足够聪明?

最佳答案

这种行为是 Kotlin 插件中的一个错误;编译器实际上不够聪明,无法删除 |人物。我已提交 an issue .

关于intellij-idea - 注释中如何处理 Kotlin 多行字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52954306/

相关文章:

python - intellij python 全局环境设置失败

kotlin - 在 Kotlin 中访问私有(private)方法

android - java.util.NoSuchElementException 导致找不到符号类 DataBindingComponent

java - IntelliJ 中的 Spring MVC 4 项目模板

eclipse - 使用IntelliJ或Eclipse进行Spark

intellij-idea - 如何使用 VM 和 PyCharm 配置自定义 PYTHONPATH?

java - Glassfish 服务器未启动。空点异常

Kotlin:filterNotNull 用于 Map<K,V?> 中的值

android - Firebase isEmailVerified 无法正常工作 kotlin android

java - 为什么 Kotlin 字节码会引用 java.util.function.BiConsumer?