говорит Only classes are allowed on the left hand side of a class literal.
Проблема возникла, когда захотел в описание сваггера добавить формат ответа
@ApiResponses(value = [
ApiResponse(
message = "success example",
code = 200,
response = Vector<Int>::class
)])
А какой конкретно тип у response? java.lang.Class? KClass? Или что-то другое?
Вот такой response data class Response<out T>( @field:JsonView(Basic::class) val result: T? = null, val message: String? = null ) в качестве T data class DelayedPagingResponse<T>( val data: List<T>, val after: String? = null, val errorText: String? = null, )
Это же не java.util.Vector, да?
это он самый, но он просто дя примера в реальности там более сложная структура тогда у меня в сваггере не будет типа Int а если там не инт а структура, то сваггер бесполезен
читай про type esure, так не зя делать как сделал ты
ну вот я и подозревал, что нельзя, грустно конечно
а почему Vector? Vector синхронизирован, если у тебя Vector не используется в нескольких потоков, то его нет смысла использовать, за место него нужно ArrayList или MutableList если в kotlin
Сорри, я про тип ApiResponse.response
@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface ApiResponse { int code(); String message(); Class<?> response() default Void.class; String reference() default ""; ResponseHeader[] responseHeaders() default {@ResponseHeader( name = "", response = Void.class )}; String responseContainer() default ""; }
Да, раз Class, значит фактические типовые параметры дженерика сохранить не выйдет.
Обсуждают сегодня