为了解决 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/

10-13 06:08