@Nullable
    @Override
    default <T> T as(Class<T> type) {
        requireNonNull(type, "type");
        return Unwrappable.super.as(type);
    }
Unwraps this {@link Service} into the object of the specified {@code type}.
Use this method instead of an explicit downcast. For example:
<pre>{@code
HttpService s = new MyService().decorate(LoggingService.newDecorator())
                               .decorate(AuthService.newDecorator());
MyService s1 = s.as(MyService.class);
LoggingService s2 = s.as(LoggingService.class);
AuthService s3 = s.as(AuthService.class);
}</pre>

@param type the type of the object to return
@return the object of the specified {@code type} if found, or {@code null} if not found.

@see Unwrappable
core/src/main/java/com/linecorp/armeria/server/Service.java