メソッドsortList(以下の擬似コードを参照)はスレッドセーフですか?Javaスレッドセーフ:enumと静的メソッド
ここには変数がないので「はい」と理解していますが、わかりました。擬似コード:
//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();
}
}
...
}
これは開始点として役立ちます: http://www.tutorialspoint.com/java/java_multithreading.htm –