Javabeans对不同类型的一个字段的约定?

时间:2012-07-25 11:44:00

标签: java spring polymorphism javabeans setter

我可以为一个setSource() setter设置两个不同参数类型的两个版本,即setSource(InputStream)setSource(TargetDataLine)吗?

在内部我持有Object字段中的值和基于RTTI的调度处理,但是我想知道像Spring这样的bean实现的库是否会优雅地接受这样的setter?即我能将不同类型的值放入一个source bean字段吗?

1 个答案:

答案 0 :(得分:2)

这似乎并不合适。 getSource()返回什么? Object?如果是这样,我建议您setSource()接受Object

显然,这似乎太'通用'了,我想知道这个问题是否表明你的建模是不正确的,并且你需要两个专门的子类来处理不同的源类型。

如果不这样做,为什么不明确并且setStreamSource() / setTargetDataLineSource()具有正确的类型,并强制执行其中一个或另一个的设置,而不是两者都设置(我仍然认为专业化是这样的然而,去)。