如何解决普通方法调用静态属性的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)

相关推荐

  • jquery length是什么意思

    技术jquery length是什么意思这篇文章主要讲解了“jquery length是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery length是

    攻略 2021年11月15日
  • 怎么进行MONGODB 查询

    技术怎么进行MONGODB 查询这篇文章给大家介绍怎么进行MONGODB 查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。惯了SQL 语句的开发人员,在使用MONGODB 的时候,很可能会误会这个

    攻略 2021年11月3日
  • 拔苗助长告诉我们什么道理,揠苗助长告诉我们什么道理

    技术拔苗助长告诉我们什么道理,揠苗助长告诉我们什么道理揠苗助长的故事出自《孟子·公孙丑上》,揠,是拔起的意思。揠苗助长的意思就是把苗拔起,帮助其生长,比喻不管事物的发展规律,强求速成,反而把事情弄糟。天下不希望自己禾苗长

    生活 2021年10月26日
  • 220v50hz一小时多少电,220v50HZ多大功率

    技术220v50hz一小时多少电,220v50HZ多大功率光看电压和频率是无法看出功率的220v50hz一小时多少电。电功率= 电压×电流。 220v50Hz是市电电压以及频率,功率的单位是瓦或者千瓦,功率=电压×电流,

    生活 2021年10月20日
  • google的数据分析用的什么(google analytics分析证书含金量)

    技术替代Google Analytics的轻量级分析工具是什么本篇文章给大家分享的是有关替代Google Analytics的轻量级分析工具是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收

    攻略 2021年12月16日
  • ORACLE WITH AS 用法

    技术ORACLE WITH AS 用法 ORACLE WITH AS 用法With查询语句不是以select开始的,而是以“WITH”关键字开头 可认为在真正进行查询之前预先构造了一个临时表,之后便可多

    礼包 2021年11月26日