【发布时间】:2016-12-23 14:02:09
【问题描述】:
我正在做一个应该存储在两个不同文本文件中的项目。假设我有 2 个类 Person 和 Activity,每个类只有以下共同属性:id 和 isActive。但也有很多不常见的。
我还有 2 个类 ArrayList 类型:
public class RegistryPerson extends ArrayList<Person> {
public void add(Person obj){
....
}
public boolean isDuplicate(Person obj){
for(Person p: this){
if(obj.equals(p)){
return true;
}
}
return false;
}
public Person search(int id){
....
}
public void readFile(){
otherClass.readFile(String txtfilePerson);
}
public void activate(Person obj){
obj.setActivate;
}
//more methods
}
.
public class RegistryActivity extends ArrayList<Activity> {
public void add(Activity obj){
....
}
public boolean isDuplicate(Activity obj){
for(Activity p: this){
if(obj.equals(p)){
return true;
}
}
return false;
}
public Activity search(int id){
....
}
public void readFile(){
otherClass.readFile(String txtfileActivity);
}
public void activate(Activity obj){
obj.setActivate;
}
//more methods
}
两个类的方法相同
如您所见,ArrayList RegitryPerson 和 RegistryActivigy 两个类类型具有相同的方法,但有些使用了不同类型的对象。
我只是不想在不同的类中使用几乎相同的代码。我可以使用接口或抽象类吗?最重要的是,如何实现?还是我把一切都复杂化了?
谢谢。
【问题讨论】:
-
强烈建议您不要扩展 ArrayList。只需将 List 作为类的实例变量即可。
-
@puhlen 谢谢.. 你能提供更多信息吗?
标签: java class arraylist refactoring