Checkstyle,如何强制存在序列化ID?

时间:2017-01-10 09:51:28

标签: java continuous-integration checkstyle

有没有人知道Checkstyle Check 在任何实现Serializable的类中强制存在序列化ID。

例如:

public class Accounts extends implements Serializable {

应该被迫拥有该字段

/**
* Id for serialization
*/
private static final long serialVersionUID = 1L;

似乎没有检查这个具体案例

我不清楚如何使用/,如果适合使用,“Regexp”检查此案例, 因为我不确定如何将它应用于特定的类(实现Serializable的类)?

任何指针或帮助都会很棒。 谢谢大家。 卢克

1 个答案:

答案 0 :(得分:1)

目前无法使用Checkstyle开箱即用。 (由于各种原因,其中一个原因是,由于Checkstyle对源代码而不是字节代码进行操作,因此判断一个类是否实现Serializable并不容易。)但是,你可以write a custom check做它

话虽如此,您可能想尝试FindBugs,如果可能的话。它有一个名为SE_NO_SERIALVERSIONID的支票,可以满足您的需求。还有一些更相关的检查,例如SE_NONFINAL_SERIALVERSIONIDSE_NONLONG_SERIALVERSIONIDSE_NONSTATIC_SERIALVERSIONID