Advertisement
Guest User

SO Generic class with dependent generic types, cannot specia

a guest
Dec 18th, 2012
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.10 KB | None | 0 0
  1. // For http://stackoverflow.com/questions/13931900/generic-class-wi
  2.  
  3. public class Test {
  4.     // This works
  5.     public static <X> void test(LabelField<X> lf) {
  6.         LabelProvider<X> lp = lf.getLabelProvider();
  7.         new Wrapper<X, LabelField<X>>(lf, lp);
  8.     }
  9. }
  10.  
  11. class Wrapper<V, F extends Field<V>> {
  12.  
  13.     private F field;
  14.     private LabelProvider<V> labelProvider; // Converts from V to String
  15.            
  16.     // Since we have no guarantee that F has a LabelProvider, one is explicitely supplied.
  17.     public Wrapper(F field, LabelProvider<V> labelProvider) {
  18.         this.field = field;
  19.         this.labelProvider = labelProvider;
  20.     }
  21.    
  22.     public Wrapper(LabelField<V> labelField) {
  23.         // This doesn't work, why ?
  24.         this(labelField, labelField.getLabelProvider());
  25.     }
  26.  
  27.     public String getLabel() {
  28.         return labelProvider.getLabel(field.getValue());
  29.     }
  30.  
  31.     public F getField() {
  32.         return field;
  33.     }
  34.    
  35.     public V fetValue() {
  36.         return field.getValue();
  37.     }
  38. }
  39.  
  40. interface Field<V> {
  41.     V getValue();
  42. }
  43.  
  44. interface LabelProvider<V> {
  45.     String getLabel(V v);
  46. }
  47.  
  48. interface LabelField<V> extends Field<V> {
  49.     LabelProvider<V> getLabelProvider();
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement