gpt4 book ai didi

java - 注释元数据的 Groovy 字 rune 字?

转载 作者:行者123 更新时间:2023-11-30 10:56:26 29 4
gpt4 key购买 nike

我想在 Groovy 中测试我的 Java 自定义注释,但由于字符问题而未能成功。

Groovyc: Expected 'a' to be an inline constant of type char not a field expression in @MyAnnotation

我知道 groovy 中的 char 被指定为

'a' as char

我的Java自定义注解

@Target({FIELD})
@Retention(RUNTIME)
@Documented
public @interface MyAnnotation {

char someChar() default '#';

}

不工作 Groovy 代码

class Foo {

@MyAnnotation(someChar = 'a' as char)
Object hoo

}

如果将char提取为常量,它也不起作用。

最佳答案

这是一个棘手的问题……我发现有用的是:

import java.lang.annotation.Documented
import java.lang.annotation.ElementType
import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy
import java.lang.annotation.Target
import groovy.transform.CompileStatic

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyAnnotation {

char someChar() default ('#' as char);

}

@CompileStatic
class Foo {

@MyAnnotation(someChar =( (char)'a'))
Object hoo

}

重要的部分是注解定义中的 as char(除非是 Java 而不是 Groovy),注解用法中的 char,而不是 作为 char,但在制作该类 @CompileStatic 时进行了强制转换。这似乎对我有用,但如果您可以访问注释代码,您也可以将其更改为字符串,因为我认为我使用字符串可以更简单地工作。

关于java - 注释元数据的 Groovy 字 rune 字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015491/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com