为了解决 Sonar 扫描报告显示的分支覆盖范围不足的问题,我使用了反射调用类的私有(private)构造函数。这是我正在工作的代码的片段:
// reflection to access a private constructor of a class
Constructor<CMISBridgeMaps> c = CMISBridgeMaps.class.getDeclaredConstructor(new Class[0]);
c.setAccessible(true);
cmisBridgeMaps = c.newInstance(new Object[0]);
上面的代码解决了我的 Sonar 扫描关键问题。但是不幸的是,现在要加强的是在下面的行中显示访问说明符操作问题:
c.setAccessible(true);
我该如何解决设防和 Sonar 问题?任何帮助将不胜感激。
最佳答案
我相信您无需在UNIT TC上运行强化扫描。当编写它们来验证您的代码时,它们不会在您的生产/实际环境中运行。
关于java - 强化高: Access specifier manipulation on reflection that is used to invoke a private constructor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41878901/