You are using generics, but you are not providing a binding.
public abstract class Event<I, O> { // <-- I is input O is Output public abstract O doEventStuff(I args); } public class A extends Event<String, String> { // <-- binding in the impl. @Override public String doEventStuff(String str) { } }
Or easier with one common binding ...
public abstract class Event<T> { // <-- only one provided public abstract T doEventStuff(T args); } public class A extends Event<String> { // <-- binding the impl. @Override public String doEventStuff(String str) { } }
Michael J. Lee
source share