Generic type protocol conformity in Swift

@objc protocol Vehicle {
    func Test()
}

class Car: Vehicle {
    @objc func Test() {
        //Implementation
    }
}

private class Truck {}

class Service<T: Vehicle> {
    var list: [T] = []
    
    func add(item: T) {
        list.append(item)
    }
    
    func test() {
        for item in list {
            item.Test()
        }
    }
}

let service = Service<Vehicle>()
service.add(Car())
service.test()

service.add(Truck())//<- Error