在Java中,您有时可以使用泛型而不关心实际类型。
你能在Swift中做到吗?

例如,MyClass<AnyObject>不能像Java中的MyClass<?>那样工作。在我希望它能正常工作。

还有其他办法吗?

最佳答案

介绍一个类型参数;编译器将使其采用任何类型。尝试:

func executeRequest<T> (request: APIRequest<T>) {
 // ...
}

例如:
class APIRequest<T> {}
class Movie {}
class MovieRequest : APIRequest<Movie> {}
let m = MovieRequest()
//print(m)

func executeRequest<T> (request: APIRequest<T>) {
    print(request)
}

executeRequest(m)

类型参数的引入可以使参数更明确,并更好地匹配问题域。例如,在您的情况下,您肯定不能对任何东西执行APIRequest;您可以在APIRequest上制作一个Resource
protocol Resource {}
class Movie : Resource {}
class Song : Resource {}

class APIRequest<T:Resource> { /* ... */ }

func executeRequest<T:Resource> (request: APIRequest<T>) { /* ... */ }

10-08 00:40