При изграждането на SDK е най-добре да не го правитеда променяте подписите на метода, така че да не прекъсвате клиентите си (включително име и параметри).
Отговори:
3 за отговор № 1Използвайки отражението на java, можете да проверите методите на класа. След това можете да потърсите метод на конкретен подпис и да пропуснете твърдение, ако този метод не е намерен в класа.
Например, за да потвърдите наличието на следния метод:
public class SO {
public Integer foo(String bar) {
System.out.println("foo");
return 0;
}
}
Можете да използвате следния тест:
public class SOTest {
@Test
public void testFooMethodExists() {
try {
Class<SO> clazz = SO.class;
Method method = clazz.getMethod("foo", String.class);
Class<?> returnClass = method.getReturnType();
Assert.assertTrue("foo method returns the wrong type.",
returnClass.equals(Integer.class));
} catch (NoSuchMethodException | SecurityException e) {
Assert.fail("foo method is missing.");
}
}
}
Това е много прост пример, но може лесно да бъде разширен, за да се търсят по-сложни сигнатури за методите.