我有一个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");
}
}
答案 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.