Я хотел бы применить аннотацию к определенным вызовам методов, чтобы я мог сказать аспекту, чтобы изменить выполнение для этих вызовов.
public interface Door {
void open() throws DoorException;
void close() throws DoorException;
}
public class Ferrari {
@Inject @Lightweight Door door;
public void drive() {
open();
close();
open();
}
}
В этом случае здесь я хочу, чтобы все операции открытия / закрытия выполнялисьэффективно обернуть таким же образом, но что, если я хочу, чтобы кто-то вел себя по-другому?
Я хотел бы сделать что-то вроде:
public class Ferrari {
@Inject Door door;
public void drive() {
door.open();
door.close();
@Slowly door.open();
}
}
Я понимаю, что не могу поместить аннотацию туда,но в то же время я не хочу сгущать открытую подпись для передачи необязательных метаданных.
Каков наилучший способ сделать это?
Я мог бы сделать это:
public class Ferrari {
@Inject Door door;
public void drive() {
door.open();
door.close();
((@Slowly Door)door).open();
}
}