php实现同一类型对象集合(泛型)
时间:2024-3-26 11:27 作者:xiang 分类: php
java泛型
import java.util.ArrayList;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Main {
public static void main(String[] args) {
// 创建一个存储Person对象的ArrayList
ArrayList<Person> personList = new ArrayList<>();
personList.add(new Person("Alice"));
personList.add(new Person("Bob"));
// 遍历Person对象ArrayList
for (Person person : personList) {
System.out.println("Person name: " + person.getName());
}
}
}
在上面的示例中,我们创建了一个存储Person对象的ArrayList。通过指定泛型类型为Person,我们可以确保ArrayList只能存储Person对象。然后我们添加两个Person对象到ArrayList中,并通过遍历ArrayList来访问存储的Person对象。
泛型的作用
泛型的作用是在编译时提供更严格的类型检查,并且在编译时捕获和消除类型转换错误。使用泛型可以使代码更加灵活和安全,因为它们允许我们在编译时指定要操作的数据类型。这样可以确保数据的类型安全性,并减少在运行时出现的类型转换错误。泛型还可以提高代码的重用性,因为可以编写可以处理多种类型的通用代码。这使得在编写集合类等数据结构时,可以更好地支持不同类型的数据。
总之,泛型的作用是提供编译时类型安全性、代码重用性和更好的类型检查。
php泛型
而php没有泛型,但我又想实现一个功能是,同一个对象的集合,这个集合只允许添加该对象。
以下是php现实,只接受AdminRulePojo类型的参数
<?php
namespace App\Http\Conllection;
use App\Http\Pojo\AdminRulePojo;
class AdminRuleConllection {
protected array $conllection=[];
public function getConllection(): array
{
return $this->conllection;
}
public function addConllection(AdminRulePojo $adminRulePojo): void
{
$this->conllection[] = $adminRulePojo;
}
}