private void set(String paramName, Setter s) throws DataLinkException {
   for (int i = 0; i < params.length; i++) {
     if (params[i] != null && params[i].equals(paramName)) {
       s.set(i + 1);
     }
   }
 }
 public void setValue(I obj, T value) {
   setter.set(obj, value);
 }
 void testA(Setter s1, Setter s2, SelfBoundSetter sbs) {
   s1.set(s2);
   // s1.set(sbs);  // Error:
   // set(Setter) in SelfBoundSetter<Setter>
   // cannot be applied to (SelfBoundSetter)
 }