将arraylist传递给另一个类以检查可用性及其过期日期的方法

时间:2017-12-16 17:00:01

标签: java encoding

我有一个Arraylist,我想将它传递给另一个类来检查可用性及其过期日期。有什么方法?

public Boolean Checkup (Product[]x, String code ) { 


   if (Product.contains(true)) {
   \\ why it is error    
       System.out.println("Product is availible");
   } 
   else 
   {
       System.out.println("Product is not availible");
   }

}

1 个答案:

答案 0 :(得分:1)

您应该更清楚的第一件事是用于存储产品的数据结构。我假设它是ArrayList,因为你提到它并使用' contains'方法。但是在checkUp方法中,您使用一组产品作为输入。这里有两个例子:

Product[] products = new Product[5]; // This is an example of array of products

List<Product> productList = new ArrayList<>(); // This is an example of an ArrayList of type products

现在我将继续假设您打算使用ArrayList。

由于我看到您传递的代码,我认为您打算找到具有指定代码的产品。所以对于一个看起来像这样的类:

public class Product {
    private String code;
    private String otherValue;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getOtherValue() {
        return otherValue;
    }

    public void setOtherValue(String otherValue) {
        this.otherValue = otherValue;
    }

}

然后,您需要一种方法来确定您的产品ArrayList是否包含具有此代码的产品。它可能是这样的:

public Optional<Product> tryGetProductWithCode(List<Product> productList, String targetCode) {
    for(Product product: productList) {
        if(product.getCode().equals(targetCode)){
            return Optional.of(product);
        }
    }
    return Optional.empty();
}

然后你的体检方法是:

public boolean checkup(List<Product> productList, String targetCode) {
    Optional<Product> potentialProduct = tryGetProductWithCode(productList, targetCode);
    if(potentialProduct.isPresent()) {
        System.out.println("Product is present");
        return true;
    }else {
        System.out.println("Product not found");
        return false;
    }
}

现在我看到你使用了contains方法,即使我认为这不是你需要的,让我再详细介绍一下。

在contains方法中,您应该传递类Product的实例。然后调用contains方法,它将尝试查找您提供的产品是否确实是ArrayList的成员。它看起来像这样:

productList.contains(someProduct);

它将返回true或false。它检查是否包含&#34;包含&#34;使用Product类的equals方法,所以一定要覆盖它。这是一个有用的link。您的IDE(如IntelliJ或Eclipse)也可以为您执行此操作,并允许您选择要在检查中使用的属性。

但我的猜测是上述解决方案是您需要的。最后,请在某处查看java naming conventions.