@@ -0,0 +1,5 @@ | |||
package problem; | |||
public class Generic<T> { | |||
} |
@@ -0,0 +1,5 @@ | |||
package problem; | |||
public abstract class GenericService<T extends Generic<?>> { | |||
protected abstract T update(T current); | |||
} |
@@ -0,0 +1,5 @@ | |||
package problem; | |||
public class Specific extends Generic<String> { | |||
} |
@@ -0,0 +1,12 @@ | |||
package problem; | |||
public class SpecificService extends GenericService<Specific> { | |||
@Override | |||
protected Specific update(Specific current) { | |||
return null; | |||
} | |||
public static void main(String[] args) { | |||
new SpecificService(); | |||
} | |||
} |
@@ -0,0 +1,8 @@ | |||
package problem.aspect; | |||
import org.aspectj.lang.annotation.Aspect; | |||
//@Aspect public class AnyAspect { | |||
@Aspect | |||
public class AnyAspect { | |||
} |