Validator Code - Duplizierung

Raphalon

Aktives Mitglied
Hallo,

folgender Code dupliziert Code für jedes mittels einem Comparator zu vergleichendes Kriterium. Wie vermeidet man so etwas am besten?

Java:
import java.util.Comparator;
 
public class Vali implements Comparator<Vali> {
 
       private Integer size;
       private Integer volume;
       private Integer buckets;
       private Integer nuOfContents;
 
       @Override
       public int compare(final Vali o1, final Vali o2) {
             int sizeCompare = anylseSize(o1, o2);
             if (sizeCompare != 0) {
                    return sizeCompare;
             } else {
                    int volumeCompare = analyseVolume(o1, o2);
                    if (volumeCompare != 0) {
                           return volumeCompare;
                    } else {
                           return compareBuckets(o1, o2);
                    }
             }
       }
 
       private int anylseSize(final Vali o1, final Vali o2) {
             int sizeCompare = 0;
             if (o1.getSize() != null && o2.getSize() != null) {
                    sizeCompare = o1.getSize().compareTo(o2.getSize());
             } else if (o1.getSize() != null && o2.getSize() == null) {
                    sizeCompare = -1;
             } else if (o1.getSize() == null && o2.getSize() != null) {
                    sizeCompare = 1;
             } else {
                    sizeCompare = 0;
             }
             return sizeCompare;
       }
 
       private int analyseVolume(final Vali o1, final Vali o2) {
             int volumeCompare;
             if (o1.getVolume() != null && o2.getVolume() != null) {
                    volumeCompare = o1.getVolume().compareTo(o2.getVolume());
             } else if (o1.getVolume() != null && o2.getVolume() == null) {
                    volumeCompare = -1;
             } else if (o1.getVolume() == null && o2.getVolume() != null) {
                    volumeCompare = 1;
             } else {
                    volumeCompare = 0;
             }
             return volumeCompare;
       }
 
       private int compareBuckets(final Vali o1, final Vali o2) {
             int bucketsCompare = 0;
             if (o1.getBuckets() != null && o2.getBuckets() != null) {
                    bucketsCompare = o1.getBuckets().compareTo(o2.getBuckets());
             } else if (o1.getBuckets() != null && o2.getBuckets() == null) {
                    bucketsCompare = -1;
             } else if (o1.getBuckets() == null && o2.getBuckets() != null) {
                    bucketsCompare = 1;
             } else {
                    bucketsCompare = 0;
             }
             return bucketsCompare;
       }
 
       public Integer getSize() {
             return size;
       }
 
       public void setSize(final Integer size) {
             this.size = size;
       }
 
       public Integer getVolume() {
             return volume;
       }
 
       public void setVolume(final Integer volume) {
             this.volume = volume;
       }
 
       public Integer getNuOfContents() {
             return nuOfContents;
       }
 
       public void setNuOfContents(final Integer nuOfContents) {
             this.nuOfContents = nuOfContents;
       }
 
       public Integer getBuckets() {
             return buckets;
       }
 
       public void setBuckets(final Integer buckets) {
             this.buckets = buckets;
       }
 
}
 

Ruzmanz

Top Contributor
Im Prinzip vergleichst du 3x zwei verschiedene Integer-Objekte miteinander. Also brauchst du eine Methode, die zwei Integer vergleichen kann und dieser übergibst du die richtigen Referenzen.

Java:
    private int anylseSize(final Vali o1, final Vali o2) {
    	return compareInteger(o1.getSize(), o2.getSize());
    }

  private int analyseVolume(final Vali o1, final Vali o2) {
	  return compareInteger(o1.getVolume(), o2.getVolume());
  }
  
  private int compareBuckets(final Vali o1, final Vali o2) {
	  return compareInteger(o1.getBuckets(), o2.getBuckets());
  }     
    
    private int compareInteger(final Integer i1, final Integer i2) {
        int value = 0;
        
        if (i1 != null && i2 != null) {
        	value = i1.compareTo(i2);
        } else if (i1 != null) {
        	value = -1;
        } else if (i2 != null) {
        	value = 1;
        }

        return value;
  }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Code Editieren Java Basics - Anfänger-Themen 19
tomzen Programm ignoriert in der Ausführung Code Java Basics - Anfänger-Themen 8
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
K Wie kann man diesen Code schnell und effizient interpretieren (Man hat nur 4 Minuten) Java Basics - Anfänger-Themen 3
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
I HTML Code säubern Java Basics - Anfänger-Themen 4
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
S Compiler-Fehler Nicht adressierbarer Code ( Non-addressable code ) Java Basics - Anfänger-Themen 5
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
A Code Problem Java Basics - Anfänger-Themen 6
C Fehler im Code Java Basics - Anfänger-Themen 10
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
L Ist der Code richtig Java Basics - Anfänger-Themen 3
josfe1234 code vereinfachen Java Basics - Anfänger-Themen 15
nonickatall Ausführbarkeit von Code testen bzw. Remote Debugging Java Basics - Anfänger-Themen 4
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
G Programm Code Java Basics - Anfänger-Themen 5
C Code zusammenfassen Java Basics - Anfänger-Themen 5
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
T Programmablaufsplaninterpretation in Code umformen Java Basics - Anfänger-Themen 1
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
M ISBN-Code Java Basics - Anfänger-Themen 26
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
N Kann man den Code vereinfachen? Java Basics - Anfänger-Themen 25
marcooooo Code erklären Java Basics - Anfänger-Themen 28
marcooooo Code erklären Java Basics - Anfänger-Themen 4
S Advent of Code Day4 Java Basics - Anfänger-Themen 4
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
Gaudimagspam Caesars Code entziffern in Java Java Basics - Anfänger-Themen 8
Lukasbsc Wie kann ich meinen Code optimieren? Java Basics - Anfänger-Themen 4
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
T Main startet nicht bei vorgegebenen Code Java Basics - Anfänger-Themen 41
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
parrot Code entferneJedeZweiteZiffer Java Basics - Anfänger-Themen 6
G Code kürzen Java Basics - Anfänger-Themen 5
Bluedaishi Source Code Signieren Java Basics - Anfänger-Themen 22
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
L Best Practice Code refactern Java Basics - Anfänger-Themen 30
G code kürzen Java Basics - Anfänger-Themen 16
A Code umschreiben Java Basics - Anfänger-Themen 6
Torsten.E JavaFX mit Visual Studio Code verwenden Java Basics - Anfänger-Themen 1
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
X Reverse algorithm engineering (Java code) Java Basics - Anfänger-Themen 6
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
R Was muss ich an meinem Code ändern? Java Basics - Anfänger-Themen 2
S Bewertet meinen Code - Part 1 Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben