2012-03-14 4 views
1

자바에서 의미 론적 사양을 위해이 소프트웨어 라이브러리를 사용하려고했습니다.매개 변수로 사용하는 인터페이스

DivRank을 구현하는이 특정 코드는 희소 행렬이라는 매개 변수를 사용하는 방법이 있습니다 http://code.google.com/p/airhead-research/source/browse/branches/matrix-rank/src/edu/ucla/sspace/matrix/DivRank.java?spec=svn1277&r=1277

패키지의 문서는 희소 행렬이 인터페이스 말한다 : 이 http://airhead-research.googlecode.com/svn/trunk/javadoc/1.7/edu/ucla/sspace/matrix/SparseMatrix.html

내 목표는 주입하는 것입니다 이 매개 변수에 이중 [] [] 값이 있습니다.

SparseMatrix는 setRow 및 setColumn 함수가있는 Matrix라는 다른 인터페이스를 구현합니다. 내가 만든 인터페이스의 객체와 함께 사용하려고하면 NullPointException이 발생합니다. SparseMatrix 인터페이스의 인스턴스가 없기 때문입니다.

나는 그 인터페이스를 구현하는 클래스를 사용하고 클래스 객체를 전달해야한다는 것을 깨달았다. 그러나 문서는 나의 필요에 맞는 간단한 클래스를 보여주지 않습니다.

이 인터페이스를 구현하는 새 클래스를 정의하고 인터페이스 함수를 무시하고 개체를 사용하여 값을 전달해야합니까?

+0

예, SparseMatrix를 구현할 수 있습니다. 스파 스 매트릭스가 아니라 전체 매트릭스 ('double [] []')를 가지고있는 것처럼, 나는'double [] []'생성자를 가진 SparseMatrix의 구현 클래스가 존재하는지 의심 스럽다. –

답변

0

javadoc (두 번째 링크)에서 세부 사항을 살펴 보지 않았습니다. "모든 알려진 구현 클래스"라는 목록이 있습니다. 당신은 그것들을 검사 할 수 있고 구체적인 클래스 (즉, 인터페이스 나 추상 클래스가 아닌)를 찾고 필요한 것을 수행 할 것이라고 확신합니다. 예를 들어, SparseHashMatrixdouble[][]의 행렬을 채우는 데 사용할 수있는 set(row, col, value) 메소드를 가지고 있습니다.

+0

찾아 주셔서 감사합니다. 그 메모에서 getRowVector() 값을 검색하는 함수는 인터페이스 인 SparseDoubleVector를 반환해야합니다. 값을 수집 할 수있는 대상은 무엇입니까? 구현 클래스 인 SparseHashDoubeVector를 사용하면 호환되지 않는 유형 오류가 발생합니다. – rook

+0

그대로 사용할 수 있습니다. 'SparseDoubleVector vector = matrix.getRowVector (0);'그리고 구현에 대해 걱정하지 않고 메소드를 사용할 수 있습니다 :'double firstCell = vector.get (0);' – assylias

+0

고마워요! 일했다. 그러나 차이점은 무엇입니까? 인터페이스의 객체는 수집하기에 충분하지만 보낼만큼 충분하지는 않습니다. – rook

관련 문제