我使用反射来调用类的私有(private)构造函数,以解决 Sonar 扫描报告显示的分支覆盖不足问题。这是我正在工作的代码片段:
// 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 扫描关键问题。但不幸的是,fortify 现在在以下行中显示访问说明符操作问题:
c.setAccessible(true);
如何同时解决 fortify 和 sonarcube 问题?任何帮助将不胜感激。
最佳答案
如果您使用 Spring,则可以使用 ReflectionUtils.makeAccessible(field) 使该字段可访问。 Fortify 没有提示这个调整。
您可以在 this article 中阅读更多相关信息.
关于java - 强化高 : Access specifier manipulation on reflection that is used to invoke a private constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41878901/