Giriş
Şu satırı dahil ederiz.
Annotation Type
Constructor
Field
Local variable
Method
Module
Package
Parameter
Type
Type Parameter
Type Use
ElementType.ANNOTATION_TYPE
@Transactional anotasyonu ElementType.TYPE olduğu için diğer anotasyonlar içinde kullanılabilir. Şöyle yaparız.
Şu satırı dahil ederiz.
import java.lang.annotation.Target;
Açıklaması şöyle.
Creating an annotation requires two pieces of information: (1) a retention policy and (2) a target.Şu değerleri alabilir.
A retention policy specifies how long, in terms of the program lifecycle, the annotation should be retained for.
...
The target of an annotation specifies which Java constructs an annotation can be applied to.
Annotation Type
Constructor
Field
Local variable
Method
Module
Package
Parameter
Type
Type Parameter
Type Use
ElementType.ANNOTATION_TYPE
@Transactional anotasyonu ElementType.TYPE olduğu için diğer anotasyonlar içinde kullanılabilir. Şöyle yaparız.
/**
* Shortcut and more descriptive "alias" for
{@code @Transactional(propagation = Propagation.MANDATORY)}.
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(propagation = Propagation.MANDATORY)
public @interface RequiresExistingTransaction {
}
ElementType.METHODÖrnek
Şöyle yaparız
@Target(ElementType.METHOD)
public @interface NotNull { }
@Target(ElementType.METHOD)
public @interface Other { }
public static @NotNull @Other My.Builder createBuilder() {
return new My.Builder();
}
ElementType.TYPEHerhangi bir yerde - class,interface,method,field,enumeration ve diğer anotasyonlar - bu anoyasyon kullanılabilir.
Örnek
Şöyle yaparız.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface NamedItem {
String value();
}
ElementType.TYPE_USEÖrnek
Şöylee yaparız
@Target(ElementType.TYPE_USE)
public @interface NotNull { }
@Target(ElementType.TYPE_USE)
public @interface Other { }
public static My.@NotNull @Other Builder createBuilder() {
return new My.Builder();
}
Hiç yorum yok:
Yorum Gönder