2017-10-06 1 views
-1

Ich bin neu in Kotlin und entschied, dass der beste Weg, etwas zu lernen ist, es zu verwenden (also Frage bezieht sich mehr auf Sprache als auf Klaxon-Bibliothek). Ich versuche, sehr ersten Schnipsel von Git-Seite von Klaxon zu verstehen (https://github.com/cbeust/klaxon). Hier ist sie:Kotlin-Klaxon-Bibliothek für JSON

fun parse(name: String) : Any? { 
    val cls = Parser::class.java 
    return cls.getResourceAsStream(name)?.let { inputStream -> 
     return Parser().parse(inputStream) 
    } 
} 

Ich verstehe nicht, warum in erster Fall wir

Parser :: class.java

und dann ruft getResource tun ... Aber dann rufen Sie einfach

Parser(). parse

im zweiten Fall. Was ist der Unterschied und warum es ist wie das

P. S Sorry für schlechtes Englisch =)

+0

würde ich empfehlen, die [Sprache Referenzseiten] gehen durch (https://kotlinlang.org/docs/reference/reflection.html) aus. Dieser sagt dir, was ':: class' bedeutet und was' .java' ist. – chris

Antwort

0

Hallo Yarick Ich machte einfache Version der Parse-Funktion. Was ich hier mache. Ich analysiere JSON API Request Response als String in Funktion dann Parsing erstellen und es als JSonObject

Hinweis: Verwenden Sie stringbuilder, um veränderbare Zeichenfolge zu erstellen.

// Json Parsing Object 
     fun parse(name: String): JsonObject { 
      val parser = Parser() 
      val stringBuilder: StringBuilder = StringBuilder(name) 
      val json: JsonObject = parser.parse(stringBuilder) as JsonObject 
      return json 
     } 
1

Okay, ich dachte, es nur aus, wir brauchen :: class.java weil getResourceAsStream java.lang.Class Funktion ist. Und Parse ist eine Member-Funktion der Parser-Klasse.