首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Fortify high:用于调用私有构造函数的反射上的访问说明符操作

Fortify high:用于调用私有构造函数的反射上的访问说明符操作
EN

Stack Overflow用户
提问于 2017-01-27 01:00:26
回答 4查看 7.3K关注 0票数 9

我使用反射来调用一个类的私有构造函数,以解决声纳扫描报告显示的分支复盖不足的问题。这是我正在工作的代码片段:

代码语言:javascript
运行
复制
// reflection to access a private constructor of a class
        Constructor c = CMISBridgeMaps.class.getDeclaredConstructor(new Class[0]);
        c.setAccessible(true);
        cmisBridgeMaps = c.newInstance(new Object[0]);

上面的代码解决了我的声纳扫描关键问题。但不幸的是,fortify现在显示了

访问说明符操作

在以下行发出命令:

代码语言:javascript
运行
复制
c.setAccessible(true);

我怎样才能同时解决防御工事和声立方问题呢?任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2018-11-28 17:35:20

我相信你不需要在你的单位TCs上运行加强扫描。因为它们是为了验证您的代码而编写的,并且它们不会运行到您的生产/实际环境中。

票数 2
EN

Stack Overflow用户

发布于 2021-03-01 15:44:01

您可以使用Java的反射api来解决这个问题。下面是我用来解决相同问题的解决方案。

代码语言:javascript
运行
复制
Field field = objectToBeUpdated.getClass().getDeclaredField("paramName");
AccessibleObject.setAccessible(new AccessibleObject[] {field}, true);

下面是上面使用的类的导入。

代码语言:javascript
运行
复制
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
票数 1
EN

Stack Overflow用户

发布于 2017-12-13 13:24:39

如果你使用Spring,你可以使用

以使该字段可访问。Fortify不会抱怨这种调整。

有关这方面的更多信息,请参阅

本文

..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41878901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档