2017-12-16 2 views
-2

Ich habe eine Arraylist und ich möchte es an eine andere Klasse übergeben, um die Verfügbarkeit und ihre abgelaufenen Daten zu überprüfen. Was sind die Methoden?Methoden zum Übergeben einer Arraylist an eine andere Klasse, um die Verfügbarkeit und ihre abgelaufenen Daten zu überprüfen

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

Bitte setzen Sie mehr Mühe in die Frage Ihrer Frage. Welche Fehler siehst du? Was soll der Code tun? Erkläre, erweitere, ... Warum übergibst du auch einen booleschen Wert in die 'contains (...)' Methode? –

+0

Ich habe eine Array-Liste von Produkten in einer anderen Klasse erstellt, und ich möchte prüfen, ob das Produkt in der CheckUp-Klasse verfügbar ist oder nicht, und ich weiß nicht, wie. – NoraZ

Antwort

1

die erste Sache, die Sie ein bisschen klarer machen sollten ist, welche Datenstruktur Sie verwenden, um Produkte zu speichern. Ich nehme an, es ist ArrayList, da Sie es erwähnen, und Sie verwenden die 'contains' Methode. In Ihrer CheckUp-Methode verwenden Sie jedoch eine Reihe von Produkten als Eingabe. Hier Beispiele für beide:

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 

Jetzt werde ich weiterhin davon ausgehen, Sie beabsichtigen, ArrayList zu verwenden.

Da ich sehe, dass Sie einen Code übergeben, denke ich, dass Sie beabsichtigen, das Produkt mit dem angegebenen Code zu finden. Also für eine Klasse, die wie folgt aussehen könnte: Sie

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; 
    } 

} 

dann müsste eine Methode, um herauszufinden, ob Ihre Arraylist von Produkten enthält, ein Produkt mit diesem Code. Es könnte dies mag:

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(); 
} 

Und dann würde Ihre Checkup Methode:

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; 
    } 
} 

Jetzt sehe ich dir das enthält Methode verwendet, und obwohl ich glaube nicht, dass das ist, was Sie brauchen, Lass mich ein bisschen mehr darüber erzählen.

In der contains-Methode sollten Sie eine Instanz der Klasse Product übergeben. Dann wird die contains-Methode aufgerufen, um herauszufinden, ob das Produkt, das Sie als Eingabe angegeben haben, tatsächlich Mitglied der ArrayList ist. Es würde so aussehen:

productList.contains(someProduct); 

Es wird wahr oder falsch zurückgeben. Es prüft, ob es mit der equals-Methode der Product-Klasse "enthalten" ist. Überschreibt es also. Hier ist eine hilfreiche link. Auch Ihre IDE wie IntelliJ oder Eclipse können dies für Sie tun und Sie können auswählen, welche Attribute bei der Prüfung verwendet werden sollen.

Aber meine Vermutung ist, dass die obige Lösung ist, was Sie für Ihren Fall brauchen. Letzte Sache, überprüfen Sie dies an einem Punkt für java naming conventions.

Verwandte Themen