【问题标题】:Annotations on file classes文件类注释
【发布时间】:2018-01-03 10:05:50
【问题描述】:

在我当前的代码 (Java) 中,我正在使用类级 Java 注释进行一些自定义注释处理,即注释是 @java.lang.annotation.Target({ElementType.TYPE})

目标类仅包含静态实用程序方法,因此我在 Kotlin 中使用了文件范围的函数。如何将这些注解添加到生成的Kt 类中?

在 Java 中:

// Utils.java

package com.example;

@MyCustomAspect
public void Utils {

    public static void doStuff() {
        System.out.println("Hello";
    }
}

现在在 Kotlin 中:

// Utils.kt

package com.example;

// ??? @MyCustomAspect ???

fun doStuff() {
    System.out.println("Hello";
}

【问题讨论】:

    标签: annotations kotlin static-methods


    【解决方案1】:

    您可以使用 AnnotationTarget.FILE 来允许 Kotlin 定义的注解针对从 .kt 文件生成的 Kt 类。目标为ElementType.TYPE 的Java 定义注解也可用于目标Kotlin 文件类:

    @file:MyCustomAspect
    
    package org.example
    
    @Target(AnnotationTarget.FILE)
    annotation class MyCustomAspect
    
    fun doStuff(){
    
    }
    

    【讨论】:

    • 我明白你的意思。不幸的是,注释只有一个@Target({ElementType.TYPE})。我无法更改注释,因为它由单独的团队拥有。
    • @metacubed 如果注解在 Java 中使用@Target({ElementType.TYPE}) 定义,您仍然可以使用它@file:MyCustomAspect
    猜你喜欢
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多