[英]Perl, Inline_Java, Java dynamic load of object and method
谁能协助我动态加载对象FooBar并动态调用roquet函数? 我在Perl中有以下代码段:
#!/usr/bin/perl -w
use Inline Java => << 'End_Of_Java_Code';
class FooBar {
public FooBar(){}
public void roquet() {
System.out.println("HELLO!");
}
}
End_Of_Java_Code
use Data::Dumper;
use Class::Sniff;
my $sniff = Class::Sniff->new({class=>'FooBar'});
my $num_methods = $sniff->methods;
my $num_classes = $sniff->classes;
my @methods = $sniff->methods;
my @classes = $sniff->classes;
my @unreachable = $sniff->unreachable;
foreach my $method (@methods) {
if ( $method eq "roquet" ) {
print "$method\n";
}
}
我尝试了以下方法和变体: 做法:
use Module::Load
my $package = "main::FooBar";
load $package;
$package->new();
$package->$rflmethod;//where rflmethod is the variable: $rflmethod='roquet';
b。 做法:
no strict 'refs';
use Package::Stash;
my $stash = Package::Stash->new('main::FooBar');
my $coderef = $stash->get_symbol('&__new');
$coderef->()
这有效:
my ($class, $method) = qw(FooBar roquet);
my $f = $class->new;
$f->$method;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.