Sean,
You have found a nice bug. Thanks for the easy to reproduce example.
I have tracked down the bug and I think it has really nothing to do with
inner classes. The problem is that entrySet()->toArray() returns an array
of Objects, each object of type java.util.HashMap$Entry. But
java.util.HashMap$Entry is NOT a public class. So therefore I can't
manipulate it as easily using reflexion.
What I think I need to do is treat it as a java.util.Map$Entry, which is a
public interface. I'll see how I can acheive this.
Thanks,
Patrick
Patrick LeBoutillier wrote:
Sean,
That's a great question and to be frank I have never tried to do that.
I'll investigate
and let you know what comes up.
Patrick
Slotterback, Sean wrote:
Sorry if this is a bit of a newbie question, but what is the
procedure for accessing methods of Inner classes in Inline::Java? I
am fine if I am actually instantiating the Inner class from scratch
as shown on the website, but I can't seem to access ones that have
already been instantiated. The below example illustrates
#! /usr/local/bin/perl
use strict;
use warnings;
use Inline (
Java => 'STUDY',
STUDY => ['java.util.HashMap'],
AUTOSTUDY => 1,
) ;
my $hm = new java::util::HashMap() ;
$hm->put("key", "value") ;
my $valArr = $hm->entrySet->toArray();
for (my $i = 0; $i < $valArr->length(); $i++)
{
print $valArr->[$i]->getKey() . "\n";
}
Any help would be much appreciated.
Thanks and Regards,
Sean
--
=====================
Patrick LeBoutillier
Laval, Quebec, Canada