【发布时间】:2014-11-10 10:56:18
【问题描述】:
该项目有 4 个班级。一个 Person,一个扩展 Person 的 Employee 和一个扩展 Employee 的 Academic。 我还有一个 Store,它是用户制作的 Array 的替代品。 Store的其中一个函数是‘elementAt()’,它返回给我们一个Store中的对象。
我遇到的问题是 elementAt() 总是以 Person 类型返回。这是一个大问题,因为在我的 Controller 类中,在我让用户执行仅适用于 Academic 的操作之前,我需要检查用户是否实际选择了员工。
public Person elementAt(int index)
{
// Returns element at position index
return list[index];
}
有一个大问题;根据项目规范,我无法进一步更改 Person、Employee、Academic 或 Store 类。意思是,我必须在我的控制器类中以某种方式确定 Store 索引的类型。
我想让有更多经验的人来运行它,所以感谢您的关注。
【问题讨论】:
-
我认为硬编码并隐式创建权限是错误的方法(权限不是允许主体做某事,而是指对对象做某事)。是否可以由对象完成或对对象执行某些操作应由权限确定。恕我直言,方法拦截器检查要处理的对象的规则将是一种更简洁的方法。
标签: java oop instanceof