Java에서이 패턴이 무엇인지 알지 못하기 때문에 더 좋은 제목을주는 방법을 모르겠습니다.Java의 일반적인 메소드
는 지금은이 서명하는 방법이 있습니다
public Directory getDirectory(Class<? extends Directory> type) { ... }
을 그리고 당신은 다음과 같이 호출 : 유형에
MyDirectory directory = (MyDirectory)getDirectory(MyDirectory.class);
제약은 MyDirectory
가 Directory
에서 파생해야한다는 것을 보장합니다.
정말로하고 싶은 것은 캐스트를 피하고 필요한 코드의 양을 줄이는 것입니다. C#에서는 다음과 같이 말할 수 있습니다.
MyDirectory directory = getDirectory<MyDirectory>();
Java에서 이와 비슷한 방법이 있습니까? 나는 버전 1.4부터 자바를 코딩하지 않았다!
지우기 덕분에 최선의 선택입니다 .. – pickypg
고마워요. 반환 유형으로 'T'를 정확히 빼 냈습니다. return type : 실제로는 제약 조건 일까? –
@Drew :''T extends Directory ''는 타입 메쏘드'T'를 generic 메쏘 od ... 특정 경계 (예 :'extends Directory')를주지 않더라도 모든 일반 메소드에 대한 선언을 가져야합니다. – ColinD