我希望在另一个类中封装一个通用对象,但不需要设置通用类型参数。我创建了一个基础的Animal<T>
类,并从中定义了其他子类。例如:
public class Animal<T: YummyObject> {
// Code
}
public class Dog: Animal<Bark> {
// Code
}
public class Cat: Animal<Meow> {
// Code
}
在下面的UITableView
扩展中定义了一个Animal
属性,没有使用类型参数:
extension UITableView {
private static var animal: Animal!
func addAnimal(animal: Animal) {
UITableView.animal = animal
}
}
但是这样做时我会得到以下编译错误:
引用泛型类型
Animal
需要在<...>
中添加参数。
在Java中似乎可以正常工作。如何在Swift中实现相同的功能呢?