interface BP> { } abstract class AS extends TPBP { } class BPCT extends CT { } class S extends AS { } class CT { } class TPBP> implements BP { } class SPD extends D { } class SC extends BPCT { } class D { } class XTest { public Class>> getBpClass() { return (Class>>) getSClass(); } protected Class getSClass() { return S.class; } public static void main(String[] args) { System.out.println(new XTest().getBpClass()); } }