Passing Matrix List to Java Method ,error:No method 'list_method' with matching signature found for class
이전 댓글 표시
Hi,
On Matlab Part :
matrix =[22,11,33,44,22,44,22,54]; % 1-by-8 matrix
if true
% code
import edu.lipreading.*;
import java.util.Vector;
training = MainMethod;
training.list_method(matrix);
end
On Java Part
if true
% code
public void list_method(List<Integer> points){
System.out.println("Welcome to List Method");
}
end
Note : When I have run my matlab code i got error like No method 'list_method' with matching signature found for class 'edu.lipreading.MainMethod'. // edu.lipreading Package Name ,MainMethod Class name
채택된 답변
추가 답변 (1개)
Malcolm Lidierth
2014년 3월 5일
편집: Malcolm Lidierth
2014년 3월 5일
OK, if you are stuck with a List java-side, you need to create a list MATLAB-side.
In MATLAB:
- Create a concrete list class
list=java.util.ArrayList()
- Add the elements to it
for k=1:length(matrix)
list.add(int32(matrix(k)));
end
- Check its size:
>> list.size()
ans =
8
Note that the "<Integer>" annotation in your Java code is only relevant at compile time. Casting the MATLAB variable to int32 above ensures that the ArrayList will add a java.lang.Integer to the list at run-time. You could do that explicitly using
list.add(java.lang.Integer.valueOf(matrix(k)));
instead.
Within MATLAB you can access the list elements using "get":
e.g.
list.get(0)
Note that when MATLAB receives the returned Integer, it creates a MATLAB primitive double from it:
>> class(list.get(0))
ans =
double
Java will not - it will use the java.lang.Integer instance in the list.
댓글 수: 1
SAMEER ahamed
2014년 3월 6일
편집: SAMEER ahamed
2014년 3월 6일
카테고리
도움말 센터 및 File Exchange에서 Deploy to Java Applications Using MWArray Data API에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!