gpt4 book ai didi

java - 接口(interface)、注解继承

转载 作者:行者123 更新时间:2023-12-01 04:26:03 26 4
gpt4 key购买 nike

我有一个关于接口(interface)、注释和“继承”的 Java 问题(让我用这个即使我们谈论的是接口(interface))。

这是一个例子,然后是我的问题:

public interface A {

@SomeKindOfAnnotation(..)
boolean modifyElement(String id)
}

public class B implements A{

@Override
public boolean modifyElement(String id){

//Implementation

}
}

可以的方法modifyElement(String id) (在B类中)继承注解@SomeKindOfAnnotation ?如果是,我如何访问注释值?

最佳答案

导入java.lang.annotation.Retention;导入java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

公共(public)@interface SomeKindOfAnnotation{

public String typeOfSecurityNeeded();

}

<小时/>

公共(public)接口(interface)A{

@SomeKindOfAnnotation(typeOfSecurityNeeded = "low")
public void f3() ;

}

公共(public)类 B 实现 A {

@Override
public void f3() {
// TODO Auto-generated method stub
}

}

导入java.lang.reflect.Method;

公共(public)类测试程序{

public static void main(String[] args) {

try {

A obj = new B();
Class c = obj.getClass();
Method m = c.getMethod("f3");

if(m.isAnnotationPresent(SomeKindOfAnnotation.class))
{
SomeKindOfAnnotation x = m.getAnnotation(SomeKindOfAnnotation.class);
System.out.println("level of security is " +x.typeOfSecurityNeeded() );
}
else
{
System.out.println("no security ");
}

} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}

}

O/P -------->>>>>>>>>>

没有安全性

<小时/>

现在在B类中添加注释

公共(public)类 B 实现 A {

@Override
@SomeKindOfAnnotation(typeOfSecurityNeeded = "low")
public void f3() {
// TODO Auto-generated method stub

}

}

<小时/>

O/P ---->>>>>>

安全级别低

关于java - 接口(interface)、注解继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18484085/

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