--- /dev/null
+
+public class X implements SelectAction<Long, User>{
+ public void setSelected(User user){
+ //overriden version
+ }
+ public static void main(String[] args){
+ new X().setSelectedId(1l);
+ }
+}
+
+interface SelectAction<I, T> {
+ public void setSelectedId(I id);
+ public void setSelected(T object);
+}
+
+aspect SelectActionAspect {
+ public void SelectAction<I, T>.setSelected(T object){
+ //do nothing
+ }
+ public void SelectAction<I, T>.setSelectedId(I id){
+ setSelected(null);
+ }
+}
+
+class User {}