为ArrayList属性创建单独的java bean

为ArrayList属性创建单独的java bean,java,javabeans,superclass,Java,Javabeans,Superclass,我有两种类型的java bean可以与用户java bean关联: 私人教师和公司教师。 这两个JavaBean是相似的,只是它们的一个属性,比如“subject”,PrivateTacher总是有一个属性,而companyTech可以有几个属性。 对于这两种类型的用户,如果“subject”字段是ArrayList,PrivateTacher只填充ArrayList中的一个元素,而CompanyTech可以填充多个元素,那么使用一个java bean是否更有意义 或者我应该有两个单独的java

我有两种类型的java bean可以与用户java bean关联:
私人教师
公司教师
。 这两个JavaBean是相似的,只是它们的一个属性,比如“subject”,PrivateTacher总是有一个属性,而companyTech可以有几个属性。 对于这两种类型的用户,如果“subject”字段是ArrayList,PrivateTacher只填充ArrayList中的一个元素,而CompanyTech可以填充多个元素,那么使用一个java bean是否更有意义

或者我应该有两个单独的java bean:一个带有int字段,另一个带有
ArrayList
字段(用于主题id的字段)

一方面,后一种方法更精确。另一方面,我不想限制我拥有的方法,比如“findTeachers”,它可以满足两种类型的java bean(传递一个表示bean类型的参数:“company”或“private”,然后用户bean将不同,但教师bean将相同)。 有什么建议或解释吗? 谢谢

这取决于


如果您想以相同的方式(多态性)处理
私人教师
公司教师
,那么
列表
(而不是
数组列表
)将是一种更好的方法。但如果不是这样,那么-用更精确的方式来描述它们。

你可以有一位支持这两种方法的私人教师:

public String getSubject(int index) {
  return index < subjects.size() ? subjects.get(index) : subjects.get(subjects.size()-1);
}
public String getSubject() {
  return getSubject(0);
}
公共字符串getSubject(int索引){
返回索引