Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何重构ArrayList<;MyClass>;进入我的班级名单?_Java_Android_Eclipse - Fatal编程技术网

Java 如何重构ArrayList<;MyClass>;进入我的班级名单?

Java 如何重构ArrayList<;MyClass>;进入我的班级名单?,java,android,eclipse,Java,Android,Eclipse,我在Eclipse(开普勒)中有一个项目,我在很多地方使用以下内容 AraryList<Person> person; AraryList人; 然后 person = new ArrayList<Person>(); person=newarraylist(); 甚至是返回并获取的方法 ArrayList<Person> ArrayList 有没有一种简单的方法可以将ArrayList重构为类似于扩展ArrayList的PersonalArray

我在Eclipse(开普勒)中有一个项目,我在很多地方使用以下内容

AraryList<Person> person;
AraryList人;
然后

person = new ArrayList<Person>();
person=newarraylist();
甚至是返回并获取的方法

 ArrayList<Person>
ArrayList
有没有一种简单的方法可以将ArrayList重构为类似于扩展ArrayList的PersonalArrayList的东西

我想能够有一些方法像

ArrayList<People> getAllWithPhoneNumber(String phoneNumber) {

}
ArrayList getAllWithPhoneNumber(字符串phoneNumber){
}
更新: 我提出这个问题的根本原因是基于以下需要。 我在ArrayList中维护一个People对象列表,但我决定 我需要一些功能,比如能够搜索这个列表和 基于某些属性返回一个或多个人员。 我最初的计划是创建一个扩展ArrayList和add的新类 该类的方法

我目前的想法是创建一个具有ArrayList而不是 然后扩展ArrayList

我认为这是正确的方法。如果我走的是一条糟糕的道路,请发表评论

感谢所有的评论;他们真的帮助我思考了这件事(我很明显 一个业余爱好者在所有这些东西,但它是有趣的学习)

类PersonArrayList扩展ArrayList{}
类PersonArrayList扩展了ArrayList{}

您应该这样使用

List<List<Person>> getAllWithPhoneNumber(String phoneNumber) {
 //TODO: put code here
}
列出getAllWithPhoneNumber(字符串phoneNumber){
//TODO:把代码放在这里
}

您应该这样使用

List<List<Person>> getAllWithPhoneNumber(String phoneNumber) {
 //TODO: put code here
}
列出getAllWithPhoneNumber(字符串phoneNumber){
//TODO:把代码放在这里
}

我不认为返回不好
ArrayList
可能更好,将返回合同而不是具体实施替换为
List

如果您仍然想要拥有自己的类型,那么创建一个类似的类

class People{

List<Person> persons;

}
班级人员{
列出人员名单;
}

但是子类化到一个新的
PersonArrayList扩展了ArrayList
是一个坏主意,因为你不是什么都不做,只是给它一个名字

我不认为返回不好
ArrayList
可能更好,将返回合同而不是具体实施替换为
List

如果您仍然想要拥有自己的类型,那么创建一个类似的类

class People{

List<Person> persons;

}
班级人员{
列出人员名单;
}


但是子类化到一个新的
PersonArrayList扩展了ArrayList
是一个坏主意,因为你不是什么都不做,只是给它一个名字

我不认为从这个方法返回列表就可以完成OP想要的任务。@nachokk你是对的,我甚至没有注意到说的是
People
,而不是
Person
@塞吉奥:我否决了你的答案。如果你编辑它(即使是很小的),我可以删除否决票。对此很抱歉。我不认为通过此方法返回列表将完成OP所寻找的任务。@nachokk你是对的,我甚至没有注意到说的是
,而不是
@塞吉奥:我否决了你的答案。如果你编辑它(即使是很小的),我可以删除否决票。很抱歉。好的,那么有没有一种简单的方法可以将ArrayList的所有用法替换为PersonalArrayList呢?要获得完全的效果,请添加与
ArrayList
s构造函数匹配的构造函数。他们可以在超类中调用相应的构造函数。@nPn在Eclipse中,在搜索菜单中选择“文件…”,按下底部的“替换”按钮,然后从那里开始。@Jason谢谢,我认为搜索,再加上上面的内容,正是我要找的好,那么,有没有一种简单的方法可以将ArrayList的所有用法都替换为PersonalArrayList呢?为了充分发挥作用,可以添加与
ArrayList
s构造函数匹配的构造函数。他们可以在超类中调用相应的构造函数。@nPn在Eclipse中,在搜索菜单中选择“文件…”,按下底部的“替换”按钮,然后从那里开始。@Jason谢谢,我认为搜索,再加上上面的内容正是我要找的。我认为你应该在方法签名中使用List而不是ArrayList,如果没有必要,不要将其子类化,什么是
?为什么要这样做,除非您想将一些自定义功能添加到
人物列表
?如果您只想方便地将
ArrayList
替换为
PersonArrayList
,那么您做Java泛型是错误的。是的,我只想添加一些功能。例如,如果我想找到所有具有特定属性的人,我想我必须做一些事情,比如:可能是我使用泛型错误,我没有做那么多java,我只是在学习andriod,但是的,我只想向ArrayList添加一些自定义功能。例如personOfInterest=people.getPersonWtihPhoneNumber(phoneNumber);我可以循环遍历并收集它们,但我必须在任何需要该功能的地方都这样做,对吗?我认为在方法签名中应该使用List而不是ArrayList,如果没有必要,不要子类化,
人是什么
?为什么要这样做,除非您想将一些自定义功能添加到
PersonArrayList
?如果您只想方便地将
ArrayList
替换为
PersonArrayList
,那么您做Java泛型是错误的。是的,我只想添加一些功能。例如,如果我想找到所有具有特定属性的人,我想我必须做一些事情,比如:可能是我使用泛型错误,我没有做那么多java,我只是在学习andriod,但是的,我只想向ArrayList添加一些自定义功能。例如personOfInterest=people.getPersonWtihPhoneNumber(phoneNumber);我可以循环并收集它们,但我必须在任何需要该功能的地方都这样做,对吗?+1它确实使代码不那么清晰,因为现在阅读代码的人必须找到