Try and:
public abstract class BaseClass<T extends BaseClass.Inputs>
and:
public class ChildClass extends BaseClass<ChildClass.Inputs>
Which means you need to change doStuff()
so that it returns T (in BaseClass
), without having a declared type variable:
public abstract T doStuff(T inputs);