1 回答

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