Swift Generics相当于Java的任何类型<?>

Cos*_*min 5 java generics swift anyobject

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

例如MyClass<AnyObject>,MyClass<?>在Java中不起作用.在我期望它的工作原理相同.

还有其他方法吗?

GoZ*_*ner 3

引入类型参数;编译器将允许它采用任何类型。尝试:

func executeRequest<T> (request: APIRequest<T>) {
 // ...
}
Run Code Online (Sandbox Code Playgroud)

例如:

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

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

executeRequest(m)
Run Code Online (Sandbox Code Playgroud)

类型参数的引入可以使问题更加明确并更好地匹配问题域。例如,就您而言,您肯定无法做APIRequest任何事情;你可以做一个APIRequest,比如说,一个Resource

protocol Resource {}
class Movie : Resource {}
class Song : Resource {}

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

func executeRequest<T:Resource> (request: APIRequest<T>) { /* ... */ } 
Run Code Online (Sandbox Code Playgroud)