2012-09-29 3 views
0

특정 매개 변수 유형에 특정 메소드가 있어야한다고 어떻게 지정할 수 있습니까?paramterized 유형에 특정 메소드가 있는지 확인

내 말은이다 : 나는 내 수업 public class SparseMatrix<type>하고, 수업 시간에 내 방법합니다 (add 방법) 중 하나는 회원들의 추가 방법을 사용할 필요가있는 경우 어떻게 그것이 typeadd을 가지고해야 할 수 있습니다 방법? 나는 SparseMatrix가 숫자와 문자열뿐만 아니라 다른 종류의 추가 가능 항목, 심지어는 다른 matricies와도 함께 작업 할 수 있어야합니다.

나는 또한 내 mulsub 방법에서 그것을 사용하고있을 것이다.

답변

3

메소드의 존재 여부에 따라이를 수행 할 수 없습니다. 유형은 공통 인터페이스 또는 수퍼 클래스를 구현해야합니다.

public interface Addable<T> 
{ 
    T add(T lhs, T rhs); 
} 

다음 : 예를 들어 기존 유형 (숫자, 문자열)를 만들어이 인터페이스를 구현할 수 없습니다 물론

public class SparseMatrix<T extends Addable<T>> 

- 당신이 당신의 자신의 적용 래퍼 유형을 작성해야 할 것이다.

+0

메소드를 호출 할 수있는 방법이 있습니까? 클래스가 없어도 클래스에 오류가 있다는 의미 일지라도? 나는 다른 것을 알아낼 수 없다면 나는 인터페이스의 것을 사용하고 래퍼를 정의 할 것입니다. – AJMansfield

+0

@AJMansfield : 리플렉션을 사용할 수는 있지만 느려지 며 컴파일 타임 안전을 잃을 수 있습니다. 코드를 동적으로 실행하려면 동적 언어가 필요합니다 ... –

+0

다른 언어를 사용하는 경우의 문제점은이 프로그램이 학교용이라는 것입니다. – AJMansfield

관련 문제