Heim >Java >javaLernprogramm >Zusammenfassung des Kotlin-Syntaxlernens – Variablendefinition, Funktionserweiterung, Parcelable-Serialisierung
Dieser Artikel stellt hauptsächlich das Lernen der Kotlin-Syntax vor – Variablendefinition, Funktionserweiterung, Parcelable-Serialisierung und andere kurz zusammengefasste verwandte Informationen. Freunde in Not können sich auf
Kotlin-Syntaxlernen – Variablendefinition und Funktionserweiterung beziehen , Parcelable-Serialisierung usw. Eine kurze Zusammenfassung
Auf der diesjährigen Google I/O 2017 Developer Conference gab Google bekannt, dass es Kotlin offiziell als offizielle First-Level-Entwicklungssprache für Android einführen wird Programme (erstklassige Sprache), als Android-Entwickler müssen Sie sich natürlich nach und nach mit dieser Sprache vertraut machen, und der erste Schritt besteht darin, die Grammatik zu lernen.
Zuvor müssen wir verstehen, wie man mit Kotlin eine Android-Anwendung schreibt. Für die Android Studio 3.0-Version können wir beim Erstellen des Projekts direkt die Option Kotlin einschließen aktivieren. Für Versionen vor 3.0 müssen wir das Kotlin-Plug-In installieren und Gradle manuell konfigurieren
Fügen Sie den folgenden Code unter dem Gradle der App hinzu
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
Fügen Sie den folgenden Code unter dem Gradle des Projekts hinzu
ext.kotlin_version = '1.1.2-3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
Kotlin definiert Variablen
Es gibt zwei Arten von Variablendefinitionen in Kotlin, val und var, wobei val der endgültigen geänderten Variablen in Java (schreibgeschützt) entspricht, die im Allgemeinen a ist Konstante und var ist im Allgemeinen eine Variable.
Die Variablendefinition von Kotlin unterstützt die Typinferenz während der Zuweisung, und alle Variablen werden standardmäßig auf „nicht null“ geändert. Sie müssen den Modifikator ? explizit nach dem Typ hinzufügen, bevor Sie ihn auf null zuweisen. .
Wenn wir Code schreiben, sollten wir regelmäßig versuchen, Variablen so zu entwerfen, dass sie nicht nullbar sind, damit viele Probleme bei nachfolgenden Operationen an den Variablen reduziert werden.
Kotlin-Funktionserweiterung
Die spezifische Syntax ist fun + type.function (Parameter)
fun Context.toast(message: String, length: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, message, length).show() }
Kotlin Parcelable Serialisierung
package com.john.kotlinstudy import android.os.Parcel import android.os.Parcelable /** * Java Bean 数据实体类 * Created by john on 17-5-24. */ data class UserBean(var name: String, var id: String) : Parcelable { constructor(source: Parcel) : this(source.readString(), source.readString()) override fun describeContents(): Int { return 0 } override fun writeToParcel(dest: Parcel, flags: Int) { dest.writeString(this.name) dest.writeString(this.id) } companion object { @JvmField val CREATOR: Parcelable.Creator<UserBean> = object : Parcelable.Creator<UserBean> { override fun createFromParcel(source: Parcel): UserBean { return UserBean(source) } override fun newArray(size: Int): Array<UserBean?> { return arrayOfNulls(size) } } } }
Companion-Keyword-Interpretation
Nicht wie Java oder C# , In Kotlin, Class verfügt über keine statischen Methoden. In den meisten Fällen wird empfohlen, Funktionen auf Paketebene anstelle statischer Methoden zu verwenden.
Wenn Sie eine Funktion schreiben müssen, die auf das Innere der Klasse zugreifen kann, ohne sie zu instanziieren (z. B. eine Factory-Funktion), können Sie sie als Objekt mit echtem Namen innerhalb der Klasse deklarieren.
Wenn Sie außerdem ein Begleitobjekt in der Klasse deklarieren, entsprechen alle Mitglieder im Objekt der externen Verwendung des statischen Modifikators in der Java/C#-Syntax. Diese Eigenschaften oder Funktionen können nur extern verwendet werden Der Zugriff erfolgt über den Klassennamen.
@JvmField-Annotation
weist den Kotlin-Compiler an, keine Getter/Setter für diese Eigenschaft zu generieren und sie durch Exposed zu ersetzen als Feld.
Wenn Sie eine Kotlin-Eigenschaft als Feld in Java verfügbar machen müssen, müssen Sie sie mit der Annotation @JvmField annotieren, damit das Feld die gleiche Sichtbarkeit wie die zugrunde liegende Eigenschaft hat.
Werkzeugklassen in Kotlin schreiben
In Java werden wir einige häufig verwendete Funktionen in Werkzeugklassen kapseln Funktionen gängiger Klassen wie String, Collection, IO usw. Die von uns geschriebenen Werkzeugklassenmethoden und -variablen werden statisch geschrieben. Da wir diese Methoden nur aufrufen möchten, ohne Attribute und Variablen in der Tool-Klasse einzubeziehen, ist keine Instanziierung erforderlich (neu). Da keine Instanziierung erforderlich ist, verwenden Sie einfach statisch.
package com.john.kotlinstudy import android.content.Context import android.widget.Toast /** * Toast工具类 * Created by john on 17-5-24. */ object ToastUtils { fun toast(context: Context, message: String) { Toast.makeText(context, message, Toast.LENGTH_SHORT).show() } }
Kotlin Activity Jump
Wir legen das Klickereignis in MainActivity fest, springen zu einer anderen Aktivität und übergeben gleichzeitig die Daten an diese
package com.john.kotlinstudy import android.content.Context import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) test_tv.text = "hello kotlin" test_tv.setOnClickListener { ToastUtils.toast(this, "hello kotlin") val user = UserBean("zhang", "001") user.id = "100" SecondActivity.navigateTo(this, user) } } fun Context.toast(message: String, length: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, message, length).show() } }
Erstellen Sie dann eine neue SecondActivity und stellen Sie eine statische Methode für den Aktivitätssprung bereit. Jeder muss wissen, dass der Vorteil darin besteht, dass der Aufrufer weiß, welche Parameter erforderlich sind, ohne einen Blick auf den Quellcode zu werfen. Wenn Sie nach Java schreiben, werden Sie feststellen, dass es kein statisches Schlüsselwort gibt! Keine Panik, Sie können dazu Begleitobjekte verwenden. Begleitobjekte sind Objekte, die den Deklarationszyklus dieser Klasse begleiten.
package com.john.kotlinstudy import android.content.Context import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_second.* /** * 跳转Activity测试类 * Created by john on 17-5-24. */ class SecondActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_second) val user = intent.getParcelableExtra<UserBean>(EXTRA_KEY_USER) user_name_tv.text = user.name ToastUtils.toast(this, user.id) } //创建一个伴生对象 companion object { //extra的key val EXTRA_KEY_USER = "extra.user" fun navigateTo(context: Context, user: UserBean) { val intent = Intent(context, SecondActivity::class.java) intent.putExtra(EXTRA_KEY_USER, user) context.startActivity(intent) } } }
Zusammenfassung
Das Obige ist nur eine kurze Einführung in einige grammatikalische Merkmale von Kotlin, die als Einführung in diese neue Sprache gilt und einige Ängste beseitigt Tatsächlich verfügt Kotlin über viele neue Funktionen, die während der Entwicklung langsam verdaut und verstanden werden müssen.
[Verwandte Empfehlungen]
1. JavaScript-Implementierungsmethode zur Bestimmung des Variablentyps basierend auf einer benutzerdefinierten Funktion
2. Details in Java um Objekte zu erstellenEine kurze Einführung in mehrere Java-ObjekteDas obige ist der detaillierte Inhalt vonZusammenfassung des Kotlin-Syntaxlernens – Variablendefinition, Funktionserweiterung, Parcelable-Serialisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!