public interface W {
}
//
public interface Wc {
<T extends W> T tipo(Class<T> wcTipo);
}
//
public interface WcA extends W {
<T extends W> T operacao(Class<T> wcaOperacao);
}
//
public interface WcB extends W {
<T extends W> T operacao(Class<T> wcbOperacao);
}
//
public class WcTipo {
public static Class<? extends WcA> wca() {
return WcA.class;
}
public static Class<? extends WcB> wcb() {
return WcB.class;
}
}
//
public interface WcAX {
void x();
}
//
public interface WcAA<T> extends W {
<T extends W> T wcaa();
}
//
public class WcAOperacao<WcAX> {
public static Class<? extends WcAA> wcaa() {
return WcAA.class;
}
}
//
public interface WcBY {
void y();
}
//
public interface WcBB<T> extends W {
<T extends W> T wcbb();
}
//
public class WcBOperacao<WcBY> {
public static Class<? extends WcBB> wcbb() {
return WcBB.class;
}
}
/*Queria acessar desta forma meu objeto*/
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Wc wc = null;
wc.tipo(WcTipo.wca()).operacao(WcAOperacao.wcaa()).wcaa();//Ate aqui vai
wc.tipo(WcTipo.wca()).operacao(WcAOperacao.wcaa()).wcaa().x();//Quero chegar ate aqui
}
}
Alguem poderia me ajudar
Obrigado !!!
JVDS