No, because MethodUtils.invokeStaticMethod()
calls Class.getMethod()
under the hood. Even if you try to hack the modifier it won't be visible to the MethodUtils
as it won't see the modified Method
reference:
Service.class
.getDeclaredMethod("getNightStart", LocalTime.class, LocalTime.class)
.setAccessible(true);
MethodUtils.invokeStaticMethod(Service.class,
"getNightStart", LocalTime.of(0, 0), LocalTime.of(8, 0));
will still fail with NoSuchMethodException
just like plain reflection:
Service.class
.getDeclaredMethod("getNightStart", LocalTime.class, LocalTime.class)
.setAccessible(true);
Method m = Service.class.getMethod("getNightStart", LocalTime.class, LocalTime.class);
m.invoke(null, LocalTime.of(0, 0), LocalTime.of(8, 0));
This will only work when the Method
object is reused:
Method m = Service.class.getDeclaredMethod("getNightStart", LocalTime.class, LocalTime.class);
m.setAccessible(true);
m.invoke(null, LocalTime.of(0, 0), LocalTime.of(8, 0));