2017-07-28 46 views
7

जावा से कोटलिन तक निम्नलिखित स्वैगर एनोटेशन को कैसे परिवर्तित करें?कोटलिन में स्वैगर @ एपी रीस्पॉन्स एनोटेशन का उपयोग कैसे करें?

@ApiResponses(value = { @ApiResponse(code = 200, message = "Given admin user found"), 
      @ApiResponse(code = 404, message = "..."), 
      @ApiResponse(code = 500, message = "..."), 
      @ApiResponse(code = 400, message = "..."), 
      @ApiResponse(code = 412, message = "...") }) 

यह काम करता है नहीं करता है:

@ApiResponses(value = listOf( 
     ApiResponse(code = 200, message = "..."), 
     ApiResponse(code = 404, message = "..."), 
     ApiResponse(code = 500, message = "..."), 
     ApiResponse(code = 400, message = "..."), 
     ApiResponse(code = 412, message = "..."))) 

त्रुटि है:

Type inference failed. Expected type mismatch: inferred type is List but ApiResponse was expected

यह काम करता है जब मैं सिर्फ एक @ApiResponselistOf() के बजाय का उपयोग करें, लेकिन मैं अधिक @ApiResponse(s) परिभाषित करने के लिए किया है।

मैं स्वैगर 2.5.0

+0

एनोटेशन उम्मीद Arrays, सूची नहीं, इसलिए 'listOf') के बजाय 'arrayOf'-function का उपयोग करने का प्रयास करें' ( – Robin

+0

अब मुझे त्रुटि मिली है: 'टाइप अनुमान विफल रहा। अपेक्षित प्रकार का मिलान: अनुमानित प्रकार ऐरे है लेकिन ApiResponse की उम्मीद थी – Frido

+0

हाँ यह बहुत विषम है। मुझे यह कहना प्रलोभन है कि यह कोटलिन – Plog

उत्तर

6

का उपयोग के रूप में the Kotlin Language Reference में कहा गया है:

If the value argument [of an Annotation] in Java has an array type, it becomes a vararg parameter in Kotlin

तो, अपने उदाहरण काम करने के लिए, यदि आप ऐसा है जैसे कि यह रखना होगा:

@ApiResponses(
    ApiResponse(code = 200, message = "..."), 
    ApiResponse(code = 404, message = "..."), 
    ApiResponse(code = 500, message = "..."), 
    ApiResponse(code = 400, message = "..."), 
    ApiResponse(code = 412, message = "...") 
) 
संबंधित मुद्दे