私はKotlinでdropwizardサンプルアプリケーションを実装しており、DateRequiredFeatureを実装する際に問題があります。私は機能を持っているKotlin側についてはKotlinでのJavaアノテーションの実装
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface DateRequired {}
:として定義された注釈で
@Provider
public class DateRequiredFeature implements DynamicFeature {
@Override
public void configure(ResourceInfo resourceInfo, FeatureContext context) {
if (resourceInfo.getResourceMethod().getAnnotation(DateRequired.class) != null) {
context.register(DateNotSpecifiedFilter.class);
}
}
}
:Javaコードのコードは次のとおりです
@Provider
class DateRequiredFeature : DynamicFeature(){
override fun configure(resourceInfo: ResourceInfo, context: FeatureContext) {
if (resourceInfo.resourceMethod.getAnnotation(DateRequired::class.java) != null) {
context.register(DateNotSpecifiedFilter::class.java)
}
}
}
が、ある明確ではありませんgetAnnotation()
が有効であるように、対応するDateRequired
注釈を実装する方法。 getAnnotation()
用(Java)の署名が
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
注
は、私はそれが同じパッケージ内にあるものの、明示的に注釈をインポートする必要があり、IntelliJのバグのように見えるさ:
...
import DateRequired
@Provider
class DateRequiredFeature : DynamicFeature {
override fun configure(resourceInfo: ResourceInfo, context: FeatureContext) {
if (resourceInfo.resourceMethod.getAnnotation(DateRequired::class.java) != null) {
context.register(DateNotSpecifiedFilter::class.java)
}
}
}
すべて標準のKotlinアノテーションを使用しています。annotation class DateRequired
あなたのやりたいことはわかりません。注釈をコトリンに再コードしますか? – Mibac
コール 'resourceInfo.resourceMethod.getAnnotation(DateRequired ..)'が機能するように、私はKotlinで 'DateRequired'アノテーションを実装したいと思います。 –