Compiled Java class not working in MATLAB

2 views (last 30 days)
I've compiled the following Java code as the comment header suggests: https://algs4.cs.princeton.edu/24pq/IndexMinPQ.java.html (The StdOut class is under this link: https://introcs.cs.princeton.edu/java/stdlib/StdOut.java.html)
However, this indexed priority queue that I really need (and possibly not only me...) returns errors in MATLAB. Namely, object construction seems to work fine:
q = IndexMinPQ(222) // works
but calling object methods fails:
q.insert(int32(3), 22) // fails
I've tried to comply with the announced MATLAB-Java type mappings, but still get this error:
No method 'insert' with matching signature found for class 'IndexMinPQ'.

Accepted Answer

Mohan Feng
Mohan Feng on 25 Oct 2018
The second argument of function "insert" is java.lang.Comparable. My observation for this case is that you might need to first create a Java Integer instance or Java String instance by JAVA constructor in MATLAB and pass the JAVA instance directly into the "insert" function instead of letting MATLAB to cast for you. For example,
r = IndexMinPQ(220);
i = java.lang.Integer(22);
r.insert(3, i);

More Answers (0)

Products


Release

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!