1 回答
TA贡献1111条经验 获得超0个赞
最简短的答案在技术上是正确的,但对于不熟悉 Java bean 的人来说毫无用处:Studentp194
没有score
属性。因此,不存在的score
属性不会被 编码为 XML XMLEncoder
。
对于任何具有名为 、foo
类型为 的Java Beans 属性的任意类Foo
,它必须有一个public Foo getFoo()
方法和一个public void setFoo(Foo foo)
方法。正如你所看到的,你的Studentp194
类没有public int getScore()
方法,也没有方法public void setScore(int score)
。
(当然,Java Beans 规范实际上并不强制要求这些是方法所需的名称。您可以通过多种方式自定义它们,包括使用 classes BeanInfo
,但这远远超出了本问题的范围。)
回到你的问题和代码,XMLEncoder
不会对你的类设计有帮助,因为你的getScore
方法需要参数,并且你的setScore
方法需要多个参数。因此它们不是 Java Beans 属性;而是 Java Beans 的属性。因此XMLEncoder
不会对它们进行编码。
假设您出于某种原因想要继续使用XMLEncoder
.然后您必须重构您的类以符合 Java Beans 规范。我将把它作为练习留给读者。 :-)
我猜这是某种作业,而使用XMLEncoder
是作业的要求。如果我错了,请查看不同的文件格式来存储和检索您的信息。
Studentp194
如果我是对的,那么您想要查看您的班级在逻辑上与分数集合或数组相关联的事实。您可能希望实际创建一个类来表示测试分数,并将此类测试分数的集合存储在您的Studentp194
类中。更好的是,也许您的Studentp194
类希望与另一个类相关,例如Transcript
可以正确存储此信息的类或类似的类。有关这种分解问题的分解方法的更多信息,请阅读“第三范式”并从那里开始。我希望这对您有所帮助,欢迎来到 StackOverflow。
添加回答
举报