Задачу решил, много попыток потратил когда код был таким: public class Solution { public static void main(String[] args) throws Exception { SimpleObject<String> stringObject = new StringObject<>(); } interface SimpleObject<T> { SimpleObject<T> getInstance(); } public static class StringObject<String> implements SimpleObject<String> { @Override public StringObject<String> getInstance(){ return new StringObject<>(); } } } В таком виде все компилировалось, но решение не принималось, не могу понять почему? Писалось о не выполнении второго условия.