我正在处理以下问题。我是Perl的新手。
我的想法是我有一个类,它有数组作为成员/字段(哈希)
我们将这个类命名为ProductContainer
。
我有另一个班级Product
。这些类位于单独的文件中(单独的模块)。所以我需要在Product
对象(内部数组)中添加一个ProductContainer
对象。
简单的例子我在Java中需要什么。
public class ProductContainer {
private List<Product> mProductsList;
public addProduct(Product product) {
this.mProductList.add(product);
}
}
答案 0 :(得分:4)
目前尚不清楚你究竟在问什么,因为你没有显示任何Perl代码。
如果您使用bless作为对象,则以下内容将向您展示如何执行此操作。我将所有包放在同一个文件中。另请注意,add
方法检查其参数的类型。
#!/usr/bin/perl
use warnings;
use strict;
{ package ProductContainer;
use Carp;
sub new { bless {}, shift }
sub add {
my $self = shift;
my $product = shift;
croak "Invalid member" unless UNIVERSAL::DOES($product, 'Product');
push @{ $self->{mProductsList} }, $product;
}
}
{ package Product;
sub new {
my $class = shift;
bless { name => shift }, $class
}
}
my $p = 'Product'->new('Product 1');
my $pc = 'ProductContainer'->new;
$pc->add($p);
$pc->add('Product 2'); # Exception!