Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Perl:使用函数返回类的新实例_Java_Perl_Function_Constructor - Fatal编程技术网

Java Perl:使用函数返回类的新实例

Java Perl:使用函数返回类的新实例,java,perl,function,constructor,Java,Perl,Function,Constructor,如何在perl中返回新实例,例如在Java中: public AClass getAClass() { return new AClass(); } 但是为什么呢 my $o = AClass->getAClass(); 而不是 my $o = AClass->new(); new AClass(...) 避免使用间接对象表示法。使用 AClass->new(...) 而不是 my $o = AClass->new(); new AClass(...)

如何在perl中返回新实例,例如在Java中:

public AClass getAClass() {
   return new AClass();
}
但是为什么呢

my $o = AClass->getAClass();
而不是

my $o = AClass->new();
new AClass(...)

避免使用间接对象表示法。使用

AClass->new(...)
而不是

my $o = AClass->new();
new AClass(...)
原因是前者总是做你期望的事情,而后者是含糊不清的语法——它代表前一个代码,还是它真的意味着这一点

new(AClass(...))

解析器可能会猜测修复这种歧义的错误意图。所以你应该避免使用直接箭头符号。

谢谢,我写了一个错误:return AClass->new();不,我也会把它写成
AClass->new()
(正如你在文章后面看到的)。我使用间接对象表示法(这通常是不鼓励的),只是为了使代码接近您发布的Java的原始代码,巧妙地指出您确实没有对您的问题付出任何努力;my$t2=$t1.getAClass
是Perl中的串联运算符<代码>->是方法调用操作符。