Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 20th, 2012  |  syntax: None  |  size: 0.61 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Java nested self referential generic
  2. public class Bar<T extends Bar<T, C>, C extends Bar<C, ?>> {
  3.  
  4.     Bar() {
  5.         foo((T) null);
  6.         foo((C) null);//compile error
  7.     }
  8.  
  9.     static <S_T extends Bar<S_T, S_C>, S_C extends Bar<S_C, ?>> void foo(S_T t) {
  10.     }
  11. }
  12.        
  13. public class Bar<T extends Bar<T, C>, C extends Bar<C, ? extends Bar<?, ? extends Bar<?, ?>>>> {
  14.  
  15.     Bar() {
  16.         foo((T) null);
  17.         foo((C) null);//compile error
  18.     }
  19.  
  20.     static <S_T extends Bar<S_T, S_C>, S_C extends Bar<S_C, ? extends Bar<?, ? extends Bar<?, ?>>>> void foo(S_T t) {
  21.     }
  22. }
  23.        
  24. <S_T extends Bar<S_T,S_C> > void foo(S_T)