我有一个在 groovy/spock 中测试的 java 类。java类有一个final字段:
private static final log = Logger.getLogger(...)
我想测试一个方法是否使用这个记录器,最好使用一个模拟。问题是这个字段是最终的,所以我不能只设置它。我知道有一些解决方法,例如:
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
但这些都是可怕的黑客。有没有更时髦的方法来做到这一点?