파일 (파일 목록)을 정렬하고 이름, 크기, 수정 한 날짜, 크기, 유형 및 기타 조건에 따라 사용자 입력에 의존하는 작업이 미래에 추가 될 수 있습니다.여러 비교기를 저장할 클래스
사용자 입력은 "DIR/종류 = esdn"종류의 프로그램은 크기에 따라 종류를 결정할 수없는 확장에 의해 의미 (확장자, 크기, 날짜, 이름) ...
나는 그것을 thougth 그래서 경우 같은 클래스 또는 람다 식으로 모든 비교기를 가지고 혼란, 그래서 것 내가 모든 비교 코드가
public class Comparisons {
public class Ext implements Comparator<File> {
...
}
public class Size implements Comparator<File> {
...
}
public class Date implements Comparator<File> {
...
}
public class Name implements Comparator<File> {
...
}
public class Type implements Comparator<File> {
...
}
}
될 것이라고 새로운 제공자 라이선스 계약을 만들 생각을했다 그리고 나는 그것을 어떻게 실행하는 생각이 모든하지만, 외부 클래스를 먼저 만들지 않고 새로운 내부 클래스를 만드는 방법을 찾지 못하는 것 같습니다. 그것은 저에게 Java가 sytax 설탕에 많은 도움이되는 것처럼 보일 것이라고 생각합니다. 가장 좋은 대안은 새로운 패키지가 될 것입니다. 코드의
나머지 첫 글자
private boolean sort(String substring, List<File> fin) {
Comparator<File> k = null;
char in = substring.toLowerCase().charAt(0);
switch (in) {
case n:
k = Comparisons.new Name();
break;
case e:
k = Comparisons.new Ext();
break;
case s:
k = Comparisons.new Size();
break;
case d:
k = Comparisons.new Date();
break;
case t:
k = Comparisons.new Type();
break;
default:
break;
}
...
}
나는이 작동하지 않습니다 알고 있지만 그게 내가 무엇을 달성하고자하는의 일반적인 생각으로 정렬 재귀 함수 될 것이다.
고맙습니다.
"동일한 클래스 또는 람다 식으로 모든 비교기를 사용하는 것이 지저분 할 것"이라고 생각했습니다. 람다 경로가 최상의 옵션 인 것 같습니다. 특히 메소드 참조를 사용하는 경우에 그렇습니다. –
코드 스 니펫은 실행 가능한 웹 언어 예제입니다. 대신 코드 샘플'{}'버튼을 사용하십시오. – Radiodef
나는 코드 재사용 성이 더 좋을 것이라고 생각했다. 그리고 마지막에 많은 클래스 나 메소드를 추가하는 것은 분명히 이해가되어 유사한 작업을하기 때문에 나에게 지저분하다고 느낀다. 끝까지 추가하는 것이 너무 좋지는 않지만 나일지도 몰라. – dantex47