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。
添加回答
舉報