通过使用反射获取声明的字段来忽略 serialversionUID

Sir*_*tta 3 java java-8

是否可以通过此代码忽略字段“serialversionUID”(可能带有过滤器)

obj.getClass().getDeclaredFields();
Run Code Online (Sandbox Code Playgroud)

对于信息,它是唯一的静态字段。也许可以忽略静态字段

非常感谢你的帮助

che*_*ohi 5

Arrays.stream(Test.class.getDeclaredFields()).filter(f -> !f.getName().equals("serialVersionUID")).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)

带有过滤器的以过滤serialversionUID

  • 请注意,它通常是 `serialVersionUID`(带有大写的 `v`)。 (5认同)
  • 如果你有一个数组而不是一个变量参数列表,最好使用 `Arrays.stream` 而不是 `Stream.of`。这避免了创建类型为 `X` 的 *n* 个元素的流和创建类型为 `X[]` 的 *一个* 元素的流之间的混淆...... (2认同)