HTML.Attribute
不是Serializable
。由于某种原因,Java 开发人员决定不将序列化支持添加HTML.Attribute
到HTML.Tag
. 最可能的原因是HTMLDocument
使用它们被序列化为 HTML 文本,因此不需要直接序列化 Java 对象。
很容易修复,真的。创建自己的属性:
public final class LinkAttribute implements Serializable {
private static final long serialVersionUID = -472010305643114209L;
public static final LinkAttribute HREF = new LinkAttribute("href");
private final String name;
private LinkAttribute(final String name) {
this.name = name;
}
public boolean equals(final Object o) {
return o instanceof LinkAttribute
? name.equals(((LinkAttribute) o).name)
: false;
}
public int hashCode() {
return name.hashCode();
}
public String toString() {
return name;
}
}
这大致是HTML.Attribute
类的实现,Serializable
添加了接口。
在您使用过的LinkAttribute.HREF
任何地方使用HTML.Attribute.HREF
。