Bin ich sicher, dass die Methode sortList (siehe Pseudocode unten) Thread-sicher ist?Java thread-safety: enum und statische Methoden
Mein Verständnis, dass "ja", da gibt es keine Variablen hier, aber ich muss sicher sein. Der Pseudo-Code:
//This method should be thread-safe
public static void sortList (List<MyObject> list, SortType sortType) {
Collections.sort(list, sortType.getComparator());
}
//Defines type of sorting
public static enum SortType {
BY_FIELD_1 (new ComparatorByField1()),
BY_FIELD_2 (new ComparatorByField2()),
...
BY_FIELD_N (new ComparatorByFieldN());
private comparator;
private SortType (Comparator comparator) {
this.comparator = comparator;
}
public getComparator() {
return comparator;
}
//Method getFieldX in pseudo-code bellow returns a number
private static class ComparatorByField1 implements Comparator<MyObject> {
public int compare (MyObject o1, MyObject o2) {
return (int) (o1.getField1() - o2.getField1());
}
}
...
private static class ComparatorByFieldN implements Comparator<MyObject> {
public int compare (MyObject o1, MyObject o2) {
return (int) (o1.getFieldN() - o2.getFieldN();
}
}
...
}
kann dies als Ausgangspunkt dienen: http://www.tutorialspoint.com/java/java_multithreading.htm –