Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    in verità avevo provato così come dici:
    codice:
    @GetMapping("/greeting/{name}", "/greeting")
    fun greeting(@PathVariable(value = "name", required = false) name: String): Greeting {
        return Greeting(counter.incrementAndGet(), String.format("%s", name));
    }
    ma se poi vado su http://localhost:8080/greeting/ ottengo cmq questo:
    codice:
    Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.
    Sat Apr 18 18:40:32 CEST 2020
    There was an unexpected error (type=Internal Server Error, status=500).
    Parameter specified as non-null is null: method com.mp.springkotlin.GreetingController.greeting, parameter name
    mentre in console vedo questo:
    codice:
    ERROR 23183 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Parameter specified as non-null is null: method com.mp.springkotlin.GreetingController.greeting, parameter name] with root cause
    
    java.lang.IllegalArgumentException: Parameter specified as non-null is null: method com.mp.springkotlin.GreetingController.greeting, parameter name
    quindi pensavo di aver sbagliato.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    java.lang.IllegalArgumentException: Parameter specified as non-null is null

    quindi pensavo di aver sbagliato.
    Ah già .... ora mi ricordo! (avevo studiato qualcosa di Kotlin qualche anno fa). Un obiettivo di Kotlin è di evitare il più possibile le questioni con il null e quindi il NullPointerException. Per cui a livello proprio di type-system distingue bene tra i tipi che devono poter trattare un null e quelli che non devono trattarlo.
    Quindi solo String è NON-nullable. Se lo vuoi nullable devi mettere String?

    (il @GetMapping è invece sicuramente giusto)

    Pertanto:

    fun greeting(@PathVariable(value = "name", required = false) name: String?): Greeting {


    P.S. scusa la domanda ma stai usando Kotlin+Spring Boot per quale motivo? Mi pare che non conosci bene né l'uno né l'altro.
    Ultima modifica di andbin; 18-04-2020 a 19:10
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.