これは私のコードです:
public interface InterfaceA<J>{  
    // …
} 
public interface InterfaceB extends InterfaceA<String> {
    // …
} 
public interface InterfaceC extends InterfaceA<Long>{  
    // …
}
public class Creator<J, I extends InterfaceA<J>> {}
public abstract class Base<J, J1> implements InterfaceA<J> {    
    protected Creator<J, J1> creator;    
    protected Base() {
        creator=ObjectCreator.createCreator();
    }   
}
public class Extension1 extends Base<Integer> implements InterfaceB {
    // …
}
public class Extension2 extends Base<Double> implements InterfaceC {
    // …
}
持っていたいExtension1、持ってCreator<Integer, InterfaceB>いExtension2たいCreator<Double, interfaceC>。パターンを見ますか?Creator<T1, T2>ここT1で、は直接の親のタイプであり、T2は上記のクラスによって実装されるインターフェースです。これを行う方法はありますか?誰でもコードを教えてもらえますObjectCreator.createCreator()か?
現在、私のコードは次のようになっています。
public class ObjectCreator {
    public static <J, I extends InterfaceA<J>> Creator<J, I> createCreator() {
        return new Creator();
    }
}
コード全体でエラーが発生しました。私は本当に混乱しています。ここで何が欠けていますか?