Java 如何重构ArrayList<;MyClass>;进入我的班级名单?
我在Eclipse(开普勒)中有一个项目,我在很多地方使用以下内容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
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它确实使代码不那么清晰,因为现在阅读代码的人必须找到