我可以有一個setSource()
二傳手有兩個版本,兩個不同的參數類型,即setSource(InputStream)
和setSource(TargetDataLine)
?對於不同類型的Javabeans約定一個字段?
在內部我保留Object
字段的值和基於RTTI的分派處理,但我不知道像Spring這樣的bean類庫是否會優雅地接受這樣的setter?即我能否將不同類型的值放入一個source
bean字段中?
我可以有一個setSource()
二傳手有兩個版本,兩個不同的參數類型,即setSource(InputStream)
和setSource(TargetDataLine)
?對於不同類型的Javabeans約定一個字段?
在內部我保留Object
字段的值和基於RTTI的分派處理,但我不知道像Spring這樣的bean類庫是否會優雅地接受這樣的setter?即我能否將不同類型的值放入一個source
bean字段中?
這並不似乎真的正確。 getSource()
返回什麼?一個Object
?如果是這樣,我建議你的setSource()
接受Object
。
顯然,這似乎太「通用」,我不知道如果這個問題表明你的造型是不正確的,你需要兩個專門的子類處理不同源類型。
如果不這樣做,爲什麼不明確,並有setStreamSource()
/setTargetDataLineSource()
與正確的類型,並強制設置一個或另一個,但不是兩個(但我仍然認爲專業化的路要走,但是)。
是的,我想絕對是喜歡你,包括問題和可能的解決方案。但問題是「如果」。它會起作用嗎?附:糟糕的設計不是我的,而是Sun/Oracle的,因爲他們做了類似的類型無關。 – 2012-07-25 12:08:48
如果?我懷疑(因爲JavaBean的場合,一個*約定*),這將取決於實施 – 2012-07-25 12:10:04
這也意味着,豆想法賠償多態性:) – 2012-07-25 12:10:28
你嘗試一下嗎?發生了什麼? – 2012-07-25 11:46:48
我不告訴你,哦,偉大的大腦:) – 2012-07-25 12:12:11