Использование примера с классом Level fron Log4j2.
Следующее вызывает метод isInRange(Level, Level)
, чтобы определить, находится ли уровень журнала между двумя другими уровнями журнала.
Level warn = Level.WARN;
boolean range = warn.isInRange(Level.ERROR, LEVEL.INFO);
можно сделать с помощью Reflection с:
Level warn = Level.WARN;
Method method = warn.getClass().getMethod("isInRange", Level.class, Level.class);
boolean range = method.invoke(warn, Level.ERROR, Level.INFO);
В этом случае оба аргумента являются Level
объектами, поэтому ссылка на класс Level.class
используется дважды в getMethod
(как типы двух аргументов).
Затем метод вызывается с помощью method.invoke(warn, Level.ERROR, Level.INFO)
.
Первый аргумент - это экземпляр, для которого мы хотим вызвать метод (в данном случае warn
).
Если метод, который мы вызываем, является статическим, null
может использоваться.
Вторые два аргумента являются аргументами фактической функции isInRange
.