2017-01-11 3 views
-2

Bitte überprüfen Sie den Code unten enthalten kann, dies einige Warnung angezeigt wird,Arraylist <String[]> keine Objekte von String

ArrayList<String[]> may not contain objects of String

ArrayList<String[]> mName = new ArrayList<>(); 
mValue = "John"; 
if (!mName.contains(mValue)) { 

    String[] details = new String[]{"Driver", "Part-time"}; 
    mName.add(details); 

} 
+6

'if {' es enthält String-Arrays, so wie (mName.contains (M-Wert)!) Kann das funktionieren? –

+3

eine 'List' von' String [] 'kann nicht' String's haben? Der Fehler sagt Ihnen genau, was falsch ist, lesen Sie – Moira

+0

Ihr eigener Titel sagt nur alles. Sie haben eine Liste von String-Arrays, also wie wird diese Liste jemals ein String-Objekt enthalten – 0xDEADC0DE

Antwort

1

Ihre if Bedingung false zurückgibt, weil String[] und String sind verschiedene Arten, so die equals Methode der String-Klasse wird immer falsche zurückgeben. Sie müssen Ihren Code überdenken. Bitte beachten Sie auch diese ähnliche Frage: Using contains on an ArrayList with integer arrays

+0

Danke für das Aufzeigen des Problems –

1

Sie Arraylist erstellt haben von String [] oder String-Arrays. Aber Sie überprüfen, ob ArrayList<String[]> mName eine Zeichenfolge enthält. Java wird es nicht erlauben. In diesem Fall können Sie überprüfen, ob Ihre ArrayList eine String[] oder nicht. Also, wenn Sie diese Zeichenfolge überprüfen möchten "John" im ArrayList ist dann

ändern
ArrayList<String[]> mName = new ArrayList<>(); 

zu

ArrayList<String> mName = new ArrayList<>(); 

Wenn Sie Ihren vorherigen Code halten wollen, dann mValue zu String Array ändern. Ändern

mValue = "John" 

zu

String[] mValue = new String[]{"John"}; 

NB:mValue = "John" diese Zeile fehlt ein ;

Verwandte Themen