import java.lang.annotation.*;
import java.lang.reflect.*;
//criando a anotação
@Retention(RetentionPolicy.RUNTIME) //são anotações usadas para criar anotações
@Target(ElementType.METHOD) //só permite usar em métodos
@interface MyAnnotation { //note o @
int value();
}
//usando-a
class Hello {
@MyAnnotation(value = 10)
public void sayHello() {
System.
out.
println("hello annotation"); }
}
//pegando dados dela
class TestCustomAnnotation1 {
Hello h = new Hello();
Method m
= h.
getClass().
getMethod("sayHello"); MyAnnotation manno = m.getAnnotation(MyAnnotation.class);
System.
out.
println("value is: " + manno.
value()); }
}
//https://pt.stackoverflow.com/q/571176/101
aW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLio7ICAKaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7ICAKCi8vY3JpYW5kbyBhIGFub3Rhw6fDo28KQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuUlVOVElNRSkgLy9zw6NvIGFub3Rhw6fDtWVzIHVzYWRhcyBwYXJhIGNyaWFyIGFub3Rhw6fDtWVzCkBUYXJnZXQoRWxlbWVudFR5cGUuTUVUSE9EKSAvL3PDsyBwZXJtaXRlIHVzYXIgZW0gbcOpdG9kb3MKQGludGVyZmFjZSBNeUFubm90YXRpb24geyAvL25vdGUgbyBACiAgICBpbnQgdmFsdWUoKTsgIAp9ICAKCi8vdXNhbmRvLWEKY2xhc3MgSGVsbG8geyAgCiAgICBATXlBbm5vdGF0aW9uKHZhbHVlID0gMTApICAKICAgIHB1YmxpYyB2b2lkIHNheUhlbGxvKCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGVsbG8gYW5ub3RhdGlvbiIpOwogICAgfQp9ICAKCi8vcGVnYW5kbyBkYWRvcyBkZWxhCmNsYXNzIFRlc3RDdXN0b21Bbm5vdGF0aW9uMSB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICBIZWxsbyBoID0gbmV3IEhlbGxvKCk7CiAgICAgICAgTWV0aG9kIG0gPSBoLmdldENsYXNzKCkuZ2V0TWV0aG9kKCJzYXlIZWxsbyIpOwogICAgICAgIE15QW5ub3RhdGlvbiBtYW5ubyA9IG0uZ2V0QW5ub3RhdGlvbihNeUFubm90YXRpb24uY2xhc3MpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidmFsdWUgaXM6ICIgKyBtYW5uby52YWx1ZSgpKTsKICAgIH0KfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvNTcxMTc2LzEwMQ==