繁体   English   中英

用Java返回一个对象

[英]Return an Object in Java

我一直在努力寻找如何返回对象。

我有以下对象数组。

ArrayList<Object> favourites;

我想根据其“ description”属性在数组中找到一个对象。

public Item finditem(String description) {

for (Object x : favourites) {
   if(description.equals(x.getDescription())) {
      return Object x;
   else {
      return null;

有人可以告诉我如何编写此代码。 谢谢。

使用泛型:

ArrayList<Item> favourites;

public Item finditem(String description) {

  for (Item x : favourites)
    if(description.equals(x.getDescription()))
      return x;

  return null;
}

或者,如果您确实想拥有一个Objects数组,则该方法的返回类型必须为Object:

public Object findItem(String description)

但实际上您希望收藏夹成为项的数组列表!

您不能在通用对象上调用getDescription。

您希望ArrayList由具有属性描述的特定类型的Object组成。

由于您有班级项目:

public class Item {
    private String description;

    public String getDescription(){
        return description;
    }

   ... other methods here
}

现在,您可以创建这种类型的ArrayList,例如:

List<Item> myList = new ArrayList<Item>();

并以与您执行操作相同的方式对其进行迭代……几乎。

您的迭代代码已损坏,因为您始终只检查第一个元素,如果不是您要查找的内容,则返回null,您想要的是这样的:

for (Item x : favourites) {
  if(description.equals(x.getDescription())) {
    return x;

return null;

请注意,通过这种方式,您将遍历整个列表,并且只有在循环结束时才返回null。

ArrayList<Item>或将返回类型更改为Object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM