当前位置: 首页 > 知识库问答 >
问题:

PMD“Bean成员应序列化”规则。我们能用更聪明的方式吗?

融焕
2023-03-14

下面是(可能对某人有好处)“Bean成员应该序列化”PMD规则,该规则声明如下:

如果一个类是一个bean,或者被bean直接或间接引用,那么它需要是可序列化的。成员变量需要在类中标记为瞬态、静态或have访问器方法。将变量标记为瞬态是最安全、最简单的修改。访问器方法应遵循Java命名约定,即对于名为foo的变量,应提供getFoo()和setFoo()访问器方法。

问题是,目前checks类既不是bean,也不是被bean条件引用,甚至checks类实现了“Serializable”接口。所以,如果一个简单的哑类有几个没有访问器的私有字段(即使这个类是final的),那么就会出现Sonar标记的主要缺陷。对于大多数课程来说,这看起来很有趣,所以现在我肯定要取消这个规则。

但是我确实喜欢对真正的豆子类进行这样的检查。是否有可能(以及如何)使用声纳和开放源代码分析器(CheckStyle,PMD,findbugs)的标准集进行类似(但更智能)的检查?还有其他办法吗?

共有1个答案

葛深
2023-03-14

使用声纳,以管理员身份进入并转到设置

 类似资料:
  • 我想要一份有团队成员的团队名单 (我正在用java编写示例代码,但解决方案不必使用java。) 像这样: 如果我想访问一个团队的所有成员,那将是非常直接的<但是如果我想看看一个成员是哪个团队的成员呢<我不想每次都对所有团队成员进行循环。 我可以在成员的班级里拯救每个成员的团队,但这不是有点愚蠢吗?

  • 有人能详细解释一下这条规则吗。规则:AccessorMethodGeneration优先级:3避免自动生成的方法访问私有字段和内部/外部类的方法,并提供字段和方法的具体示例?

  • 在最新的c标准中,非专业化类模板成员的显式专业化声明规则如下: 在类模板的成员或出现在命名空间作用域中的成员模板的显式专门化声明中,该成员模板及其某些封闭类模板可能仍然未被专门化,但如果其封闭类模板也未被显式专门化,则该声明不应显式专门化该类成员模板。在这种明确的专门化声明中,应提供关键字模板和模板参数列表,而不是模板 老实说,我对这一段有很多困惑。请考虑下面这个规则中的例子。 正如评论所说,成员

  • 我正在享受Optaplanner的旅程。Java不是我的“母语”,但令我惊讶的是(陡峭?)Optaplanner学习曲线 到目前为止,我得到了什么:我已经制作了一个带有必要类的项目。为了回答我的问题,我将简化为:一个类、一个类、一个类和类,我想在其中获得我完美的Opta计划时间表。 我的员工类有一个变量

  • 问题内容: 我正在使用一些静态方法和字段进行保存状态序列化。我可能已经发誓,尽管序列化和static造成了混乱。我应该使所有静电瞬变吗?并扩大通话会恢复正常的静态吗? 问题答案: s是隐式的,因此您不需要这样声明它们。 序列化用于序列化 实例 ,而不是 类 。 字段(方法是不相关的,因为它们是类定义的一部分,所以它们不被序列化)将被重新初始化为加载类时它们设置的任何值。 如果您具有可变字段,则对该

  • 问题内容: 是否有很好的资源来描述PMD规则集背后的“为什么”?PMD的站点具有“什么”(每条规则的作用),但是并未说明PMD为何具有该规则以及为何忽略该规则会使您在现实世界中遇到麻烦。特别是,我很想知道PMD为何具有避免规则In避免(InstantInstantiatingObjectsInLoops和OnlyOneReturn)(如果需要创建一个与集合中每个对象相对应的新对象,则第一个似乎是必