1 回答

TA貢獻1111條經(jīng)驗 獲得超0個贊
最簡短的答案在技術(shù)上是正確的,但對于不熟悉 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)
。
(當(dāng)然,Java Beans 規(guī)范實際上并不強制要求這些是方法所需的名稱。您可以通過多種方式自定義它們,包括使用 classes?BeanInfo
,但這遠(yuǎn)遠(yuǎn)超出了本問題的范圍。)
回到你的問題和代碼,XMLEncoder
不會對你的類設(shè)計有幫助,因為你的getScore
方法需要參數(shù),并且你的setScore
方法需要多個參數(shù)。因此它們不是 Java Beans 屬性;而是 Java Beans 的屬性。因此XMLEncoder
不會對它們進行編碼。
假設(shè)您出于某種原因想要繼續(xù)使用XMLEncoder
.然后您必須重構(gòu)您的類以符合 Java Beans 規(guī)范。我將把它作為練習(xí)留給讀者。 :-)
我猜這是某種作業(yè),而使用XMLEncoder
是作業(yè)的要求。如果我錯了,請查看不同的文件格式來存儲和檢索您的信息。
Studentp194
如果我是對的,那么您想要查看您的班級在邏輯上與分?jǐn)?shù)集合或數(shù)組相關(guān)聯(lián)的事實。您可能希望實際創(chuàng)建一個類來表示測試分?jǐn)?shù),并將此類測試分?jǐn)?shù)的集合存儲在您的Studentp194
類中。更好的是,也許您的Studentp194
類希望與另一個類相關(guān),例如Transcript
可以正確存儲此信息的類或類似的類。有關(guān)這種分解問題的分解方法的更多信息,請閱讀“第三范式”并從那里開始。我希望這對您有所幫助,歡迎來到 StackOverflow。
添加回答
舉報