Sinnvoll wäre es im ersten Schritt die Fehler zu beseitigen Wenn du ihn in CODE-Tags setzt, wird er lesbar.
Strings vergleicht man nicht mit == sondern mit equals. Bei duration wird dir eine Nullpointer Exception fliegen, wenn der Wert in der map null ist.
Du kannst allerdings Strings in einem switch-case verwenden, dann sparst du dir die if-else cascade und kannst mit case-Statements arbeiten, das ist dann übersichtlicher. Die Abfrage ob der Value in der Map null ist, kannst du unter Umständen auch am Anfang machen und bei null einfach continue aufrufen. Oder man könnte - sofern das fachlich ok wäre - default Werte setzen, wenn der Wert null bzw. ein Leer String ist.
Die Schleife ist überflüssig, da du ja die Tags kennst, der Vergleich mit == klappt nicht und der Check auf null ist in der Form sinnlos, du würdest einfach ein NPE bekommen, wenn irgendwas null ist.
Java:
publicvoidreadAndStoreTags(String path){Map<String,Object> tag_map =TagReader.readTags(path);if(tag_map.get("title"))!=null&&!tag_map.get("title").toString().trim().isEmpty()){
title = tag_map.get("title").toString().trim();}if(tag_map.get("author"))!=null&&!tag_map.get("author").toString().trim().isEmpty()){
title = tag_map.get("author").toString().trim();}if(tag_map.get("album"))!=null&&!tag_map.get("album").toString().trim().isEmpty()){
title = tag_map.get("album").toString().trim();}if(tag_map.get("duration"))!=null){
title =(long)tag_map.get("duration");}}}
ich habe das mal in mein programm eingefügt und eine testdatei ausgeführt. in dem geänderten programmteil läuft alles gut, aber jetzt bekomme ich an einer anderen stelle einen fehler, da mir dein code aber besser gefällt würde ich deins gerne übernehmen. der test meldet in folgendem abschnitt einen fehler, hast du eine idee wie das zusammenhängt?
ich weiß es auch nicht, wir haben eine testdatei bekommen und die zeigt an dass in der zuletzt eingestellten methode ein fehler ist. ihr habt mir aber schon viel weitergeholfen, wenn ihr jetzt auch keinen fehler mehr seht ists egal. vielen dank für eure antworten und anregungen!
Was spricht denn gegen die Verwendung von StringUtils? Da kann man doch gleich alles in einem abfrühstücken...
Code:
if (StringUtils.isNotEmpty(album)) {
// do something
}
isNotEmpty prüft auf null und Länge = 0, isNotBlank prüft auf null auf Länge = 0 und auf Whitespaces ...
Des Weiteren nutze ich immer gern bei der Zuweisung von Strings die "trimToEmpty()" Methode, ebenfalls aus den StringUtils. Dies sichert mir zu, dass der String niemals null sein kann.
Das es sich hier vermutlich um eine Uni-Aufgabe oder so handelt und man da nicht umbedingt apache-commons drauf werfen kann Ansonsten eigentlich nichts.
Doch, man führt hier Abhängigkeiten zu externen Bibliotheken ein und das für etwas völlig triviales.
Java:
publicabstractclassStrings{publicstaticStringisNotBlank(String value){return value !=null&&!value.isBlank();}publicstaticStringtrimToEmpty(String value){return value ==null?"": value.trim();}}