source: class UtilTest {
  
      private String noSetter;
      private String noParamSetter;
      private String multiParamSetter;
      private String notVoidSetter;
      private int primitiveParamSetter;
      private String wrongInstanceSetter;
      private String staticSetterInstanceField;
      private String privateSetter;
      private static String staticSetterStaticField;
      private static String instanceSetterStaticField;
      private String instanceField;
      private int primitiveInstanceField;
      private String twoSetter;
      private String twoAccessibleSetter;
      private IllegalArgumentException threeAccessibleNoExactMatchSetter;
  
      @Test
      public void testGetMostSpecificMethod() throws Exception {
  
target:         Method mObject = getClass().getDeclaredMethod("setThreeAccessibleNoExactMatchSetter", Object.class);
          Method mThrowable = getClass().getDeclaredMethod("setThreeAccessibleNoExactMatchSetter", Throwable.class);
          Method mException = getClass().getDeclaredMethod("setThreeAccessibleNoExactMatchSetter", Exception.class);
  
          assertEquals(mThrowable, Util.getMostSpecificMethod(mObject, mThrowable));
          assertEquals(mException, Util.getMostSpecificMethod(mException, mThrowable));
          assertEquals(mException, Util.getMostSpecificMethod(mException, mObject));
      }
  
  }