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

相关推荐

  • 怎么进行mysql dump备份文件的压缩对比

    技术怎么进行mysql dump备份文件的压缩对比这篇文章将为大家详细讲解有关怎么进行mysql dump备份文件的压缩对比,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    攻略 2021年10月25日
  • 怎么使用Python Pandas中iloc和loc

    技术怎么使用Python Pandas中iloc和loc本篇内容主要讲解“怎么使用Python Pandas中iloc和loc”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎

    攻略 2021年11月10日
  • base64编码是怎样的

    技术base64编码是怎样的本篇内容介绍了“base64编码是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  B

    攻略 2021年11月12日
  • JavaScript是怎么运行的

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

    攻略 2021年11月20日
  • 多用户注册登录函数封装版

    技术多用户注册登录函数封装版 多用户注册登录函数封装版要求:
    1.基于文件实现用户注册及登录功能
    2.多用户模式,注册登录功能可循环执行
    3.将功能封装成函数def login():"""用于用户登录的

    礼包 2021年11月15日
  • C++中随机存取文件的处理方法是什么

    技术C++中随机存取文件的处理方法是什么这篇文章主要讲解了“C++中随机存取文件的处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中随机存取文件的处理方

    攻略 2021年11月29日