如何解决普通方法调用静态属性的Sonar问题

技术如何解决普通方法调用静态属性的Sonar问题如何解决普通方法调用静态属性Sonar问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。问题

如何解决普通方法调用静态属性Sonar的问题,很多新手都不清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

00-1010这是我们经常用来实现Spring的Bean工厂,编写一个工具类并打开一个静态方法:get实体类。

public class bean helperimplements bean factoryaware {

privatestaticBeanFactoryfactory

/**

*获取实体类。

*

*@paramid

* @返回

*/

publicatstatitgetbean(Stringid){ 0

return(T)factory . getbean(id);

}

/**

*成立豆厂。

*

*@parambeanFactory

*/

@覆盖

public voitSetBeanFactory(BeanFactoryBeanFactory){ 0

bean helper . factory=bean factory;

}

}声纳扫描报告:

实例方法不应写入“静态”字段正确地从非静态方法更新静态字段是一件棘手的事情,如果有多个类实例和/或多个线程在运行,很容易导致错误。理想情况下,静态字段只能从同步的静态方法中更新。每当从非静态方法更新静态字段时,此规则都会引发问题。

翻译:

从非静态方法中正确更新静态字段是很棘手的。如果有多个类实例和/或多个线程在运行,很容易导致错误。理想情况下,静态字段只能从同步静态方法中更新。每次从非静态方法更新静态字段时,此规则都会引发问题。

问题:普通方法调用静态属性时,Sonar会认为有问题

public classbeahnhelperimplements beanforceyaware {

privatestaticBeanFactoryfactory

/**

*获取实体类。

*

*@paramid

* @返回

*/

publicatstatitgetbean(Stringid){ 0

return(T)factory . getbean(id);

}

privatedstativationsetfactory(BeanFactoryFactory){ 0

BeanHelper.factory=factory

}

/**

*成立豆厂。

*

*@parambeanFactory

*/

@覆盖

public voitSetBeanFactory(BeanFactoryBeanFactory){ 0

setFactory(BeanFactory);

}

}

打包一个静态setFactory方法,声纳扫描不会造成问题。因为它是一个静态方法,所以将首先初始化它。此外,在setFactory方法中,可以判断BeanHelper.factory是否为空,如果不为空,则不会进行赋值,从而确保它不会被多个实例或多线程覆盖,因此这里不再详细描述。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/38060.html

(0)

相关推荐

  • 映射ADO.NET如何设置参数

    技术映射ADO.NET如何设置参数这篇文章主要为大家展示了“映射ADO.NET如何设置参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“映射ADO.NET如何设置参数”这篇文

    攻略 2021年12月1日
  • Modern Batch和计算密集型的编程模型是如何批量处理

    技术Modern Batch和计算密集型的编程模型是如何批量处理本篇内容主要讲解“Modern Batch和计算密集型的编程模型是如何批量处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编

    攻略 2021年11月2日
  • Linux下如何查看mysql的历史操作记录

    技术Linux下如何查看mysql的历史操作记录这篇文章主要介绍了Linux下如何查看mysql的历史操作记录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下

    攻略 2021年10月30日
  • 在家里挣钱的办法,2020年能在家挣钱的方法

    技术在家里挣钱的办法,2020年能在家挣钱的方法1/6 开网店。全职妈妈在家赚钱可以采用开网店的方式。假如你有资金在家里挣钱的办法,假如你有做生意的头脑,不如去开一个网店吧,利用自己的空余时间去网店上赚点零花钱,还是很

    生活 2021年10月28日
  • 无线网卡怎么用,如何使用无线网卡进行上网

    技术无线网卡怎么用,如何使用无线网卡进行上网1、把无线网卡连接到电脑的USB接口。连接上之后无线网卡怎么用,电脑就会自动安装无线网卡驱动。2、无线网卡的种类是非常多的,有些需要连接到主机插槽里。直接可以连接到电脑USB接

    生活 2021年10月31日
  • 电脑手机互传文件,手机同电脑怎么互传文件

    技术电脑手机互传文件,手机同电脑怎么互传文件日常生活中,我们经常会遇到手机和电脑互传文件的场景,可以使用传统的数据线传送方法,也可以使用软件进行传输电脑手机互传文件。方法一:使用数据线一直都是使用手机和电脑进行文件传输的

    生活 2021年10月24日