Eclipse 可序列化成员验证

发布于 2024-10-28 04:33:46 字数 141 浏览 4 评论 0原文

当我将 Java 类定义为可序列化时,Eclipse 不会警告我某些成员不可序列化,这可能会导致应用程序在运行时序列化失败。

我找不到任何启用成员验证的设置。

关于如何验证可序列化类的成员也是可序列化的任何想法吗?

谢谢

When I define a Java class to be Serializable, Eclipse does not warn me that Some of the members are not Serializable, which may cause the application to fail serializing @ runtime.

I couldn't find any setting to enable the member validation.

Any idea on how to validate that members of a Serializable class are also Serializable?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原来是傀儡 2024-11-04 04:33:46

假设没有人想出一种方法直接在 eclipse 中执行此操作,我会推荐 FindBugs 插件,它有一个规则 SerializedIdiom 我相信它应该突出您担心的问题。

如果需要,我可以添加有关规则的更多详细信息。不过,它们在此处显示的格式很痛苦,所以我放弃将它们添加到原始答案中

Assuming no one comes up with a way to do this in eclipse directly, I would reccomend the FindBugs plug-in it has a rule SerializableIdiom which I believe should highlight the issue you are worried about.

I can add more details on the rule if required. They are pain to format for display in here though so I gave up adding them to the original answer

梦罢 2024-11-04 04:33:46

引用不可序列化的类型是合法的,但最终在运行时指向可序列化对象:


import java.io.Serializable;

公共类测试实现可序列化{

private Object data;

public void setData(Object data) {
    this.data = data;
}

}

如果你后来写了类似的东西:


    Test t1 = new Test();
    Test t2 = new Test();

t1.setData("Serializable");
t2.setData(new Object());

序列化 t1 时不会有任何问题,但序列化 t2 时会崩溃。

It is legal to have a reference to a type that is not Serializable which ends up pointing at a serializable object at runtime:


import java.io.Serializable;

public class Test implements Serializable {

private Object data;

public void setData(Object data) {
    this.data = data;
}

}

if you latter write something like:


    Test t1 = new Test();
    Test t2 = new Test();

t1.setData("Serializable");
t2.setData(new Object());

you will have no problems serializing t1 but will blow up on t2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文