getClass或Enum用于依赖于类型的行为

时间:2010-11-29 19:18:00

标签: java enums introspection

假设我有一个处理传入数据对象的方法。它必须以不同方式处理每种数据类型给出两种方法签名的选择:

void sendObjects(ObjectType enum, Collection<SendableObject> objects)其中enum表示集合中对象的类型,每个对象都有ObjectType getType()方法,

void sendObjects(Collection<SendableObject> objects)其中getClass()用于确定类型。

哪种方法更好,为什么?我们最近在我公司讨论过这个问题,我很想知道社区的想法。

2 个答案:

答案 0 :(得分:1)

枚举不会添加任何内容。实际上它存在错误,因为调用者可能会混淆它。我会检查每个对象上的类或ObjectType getType(),但不要将枚举作为参数发送。

答案 1 :(得分:0)

尝试visitor模式。