คำถามติดแท็ก kotlin

Kotlin เป็นภาษาการเขียนโปรแกรมแบบโอเพนซอร์ซที่ได้รับการสนับสนุนจาก JetBrains Kotlin ผสมผสานคุณสมบัติ OOP และคุณสมบัติการใช้งานและมุ่งเน้นไปที่การทำงานร่วมกันความปลอดภัยความคมชัดและการรองรับเครื่องมือ ปัจจุบันกำหนดเป้าหมายไปที่ JVM และ JavaScript และเป็นภาษาที่ได้รับการสนับสนุนอย่างเป็นทางการบน Android

3
ฉันจะเริ่มต้น MutotList ของ Kotlin ให้ว่าง MutableList ได้อย่างไร
ดูเหมือนง่ายมาก แต่ฉันจะเตรียมข้อมูลเบื้องต้นของ Kotlin MutableListให้ว่างได้MutableListอย่างไร ฉันสามารถแฮ็คด้วยวิธีนี้ได้ แต่ฉันมั่นใจว่ามีบางอย่างที่ใช้ได้ง่ายกว่า: var pusta: List<Kolory> = emptyList() var cos: MutableList<Kolory> = pusta.toArrayList()
241 kotlin 

9
NullPointerException เมื่อพยายามเข้าถึงมุมมองในส่วน Kotlin
จะใช้ Kotlin Android Extensions กับFragments ได้อย่างไร? ถ้าฉันใช้ภายในonCreateView()ฉันได้รับNullPointerExceptionข้อยกเว้นนี้: เกิดจาก: java.lang.NullPointerException: พยายามเรียกวิธีเสมือน 'android.view.View android.view.View.f.View.FindViewById (int)' ในการอ้างอิงวัตถุ null นี่คือรหัสส่วน: package com.obaied.testrun.Fragment import android.os.Bundle import android.support.v4.app.Fragment import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.obaied.acaan.R import kotlinx.android.synthetic.main.fragment_card_selector.* public class CardSelectorFragment : Fragment() { val TAG = javaClass.canonicalName companion object { fun newInstance(): CardSelectorFragment …

10
รายการของ Kotlin หายไป“ เพิ่ม”,“ ลบ”, แผนที่ขาดหายไป“ ใส่” ฯลฯ ?
ใน Java เราสามารถทำสิ่งต่อไปนี้ public class TempClass { List<Integer> myList = null; void doSomething() { myList = new ArrayList<>(); myList.add(10); myList.remove(10); } } แต่ถ้าเราเขียนมันใหม่เพื่อ Kotlin โดยตรงดังต่อไปนี้ class TempClass { var myList: List<Int>? = null fun doSomething() { myList = ArrayList<Int>() myList!!.add(10) myList!!.remove(10) } } ฉันพบข้อผิดพลาดในการไม่ค้นหาaddและremoveฟังก์ชั่นจากรายการของฉัน ฉันหลีกเลี่ยงการร่ายไปยัง ArrayList แต่มันก็แปลกที่ต้องใช้ในการร่ายขณะที่ไม่จำเป็นต้องใช้การคัดเลือก Java และนั่นก็เอาชนะวัตถุประสงค์ของการมีลิสต์คลาสนามธรรม class …

6
จัดรูปแบบในเท็มเพลตสตริง kotlin
Kotlin มีคุณสมบัติที่ยอดเยี่ยมที่เรียกว่าแม่แบบสตริง ผมรักมัน. val i = 10 val s = "i = $i" // evaluates to "i = 10" แต่เป็นไปได้หรือไม่ที่จะมีการจัดรูปแบบในเทมเพลต? ตัวอย่างเช่นฉันต้องการจัดรูปแบบ Double ในเทมเพลตสตริงใน kotlin อย่างน้อยก็เพื่อกำหนดจำนวนหลักหลังตัวแยกทศนิยม: val pi = 3.14159265358979323 val s = "pi = $pi??" // How to make it "pi = 3.14"?

6
วิธีการสร้างคีย์หลักเป็น autoincrement สำหรับห้องพักการคงอยู่ lib
ฉันกำลังสร้างอาหารคลาส Entity (Room Persistence lib) ที่ฉันต้องการทำเป็นfoodIdautoincrement @Entity class Food(var foodName: String, var foodDesc: String, var protein: Double, var carbs: Double, var fat: Double) { @PrimaryKey var foodId: Int = 0 var calories: Double = 0.toDouble() } ฉันจะตั้งfoodIdค่าฟิลด์การสร้างอัตโนมัติได้อย่างไร

7
วิธีสร้าง Constructor ว่างสำหรับคลาสข้อมูลใน Kotlin Android
ฉันมี 10+ พารามิเตอร์ในคลาสข้อมูลฉันต้องการเริ่มต้นคลาสข้อมูลด้วยตัวสร้างที่ว่างเปล่าและตั้งค่าสำหรับพารามิเตอร์ไม่กี่ตัวเท่านั้นโดยใช้ setter และส่งผ่านวัตถุไปยังเซิร์ฟเวอร์ data class Activity( var updated_on: String, var tags: List<String>, var description: String, var user_id: List<Int>, var status_id: Int, var title: String, var created_at: String, var data: HashMap<*, *>, var id: Int, var counts: LinkedTreeMap<*, *>, ) การใช้งาน: สิ่งนี้จะง่าย val activity = Activity(); activity.title = "New …
195 android  kotlin 

8
startForeground ล้มเหลวหลังจากอัปเกรดเป็น Android 8.1
หลังจากอัพเกรดโทรศัพท์เป็น 8.1 Developer Preview Preview บริการของฉันไม่เริ่มทำงานอย่างถูกต้อง ในบริการที่ใช้เวลานานของฉันฉันได้ใช้วิธีการ startForeground เพื่อเริ่มการแจ้งเตือนอย่างต่อเนื่องซึ่งเรียกว่าเมื่อสร้าง @TargetApi(Build.VERSION_CODES.O) private fun startForeground() { // Safe call, handled by compat lib. val notificationBuilder = NotificationCompat.Builder(this, DEFAULT_CHANNEL_ID) val notification = notificationBuilder.setOngoing(true) .setSmallIcon(R.drawable.ic_launcher_foreground) .build() startForeground(101, notification) } ข้อความผิดพลาด: 11-28 11:47:53.349 24704-24704/$PACKAGE_NAMEE/AndroidRuntime: FATAL EXCEPTION: main Process: $PACKAGE_NAME, PID: 24704 android.app.RemoteServiceException: Bad notification for …

2
ความแตกต่างระหว่างชนิดรายการและอาร์เรย์ใน Kotlin
ความแตกต่างระหว่างListและArrayประเภทคืออะไร? ดูเหมือนว่าสามารถทำการดำเนินการเดียวกันกับพวกเขา (ลูปการแสดงออกของตัวกรอง ฯลฯ ) มีความแตกต่างในพฤติกรรมหรือการใช้งานหรือไม่? val names1 = listOf("Joe","Ben","Thomas") val names2 = arrayOf("Joe","Ben","Thomas") for (name in names1) println(name) for (name in names2) println(name)
192 kotlin 

4
Java 8 Stream.collect ใดที่มีอยู่ในไลบรารี Kotlin มาตรฐาน
ใน Java 8 มีการStream.collectอนุญาตให้รวมตัวกันบนคอลเลกชัน ใน Kotlin สิ่งนี้ไม่ได้อยู่ในลักษณะเดียวกันนอกเหนือไปจากบางทีอาจเป็นชุดของฟังก์ชันส่วนขยายใน stdlib แต่มันไม่ชัดเจนว่าการเทียบเคียงสำหรับกรณีการใช้งานที่แตกต่างกันอย่างไร ตัวอย่างเช่นที่ด้านบนของ JavaDoc สำหรับCollectorsเป็นตัวอย่างที่เขียนขึ้นสำหรับ Java 8 และเมื่อย้ายไปยัง Kolin คุณจะไม่สามารถใช้คลาส Java 8 เมื่ออยู่ในรุ่น JDK ที่แตกต่างกันดังนั้นจึงเป็นไปได้ว่าพวกเขาควรจะเขียนต่างกัน ในแง่ของทรัพยากรออนไลน์แสดงตัวอย่างของคอลเลกชัน Kotlin พวกเขามักจะเล็กน้อยและไม่ได้เปรียบเทียบกับกรณีการใช้งานที่เหมือนกัน มีตัวอย่างที่ดีอะไรบ้างที่ตรงกับเคสเช่นเอกสารสำหรับ Java 8 Stream.collect? รายการมี: สะสมชื่อลงในรายการ สะสมชื่อลงใน TreeSet แปลงองค์ประกอบเป็นสตริงและเชื่อมต่อพวกเขาคั่นด้วยเครื่องหมายจุลภาค คำนวณผลรวมของเงินเดือนของพนักงาน จัดกลุ่มพนักงานตามแผนก คำนวณยอดรวมเงินเดือนตามแผนก แบ่งนักเรียนให้ผ่านและไม่ผ่าน ด้วยรายละเอียดใน JavaDoc ที่ลิงค์ด้านบน หมายเหตุ: คำถามนี้เขียนโดยเจตนาและตอบโดยผู้เขียน ( คำถามที่ตอบด้วยตนเอง ) ดังนั้นคำตอบที่เป็นไปตามหัวข้อ Kotlin ที่ถูกถามบ่อยนั้นมีอยู่ใน SO …

2
ใน Kotlin เป็นวิธีสำนวนที่จะจัดการกับค่า nullable การอ้างอิงหรือการแปลงพวกเขา
หากฉันมีประเภทที่ไม่สามารถใช้Xyz?งานได้ฉันต้องการอ้างอิงหรือแปลงเป็นประเภทที่ไม่สามารถยกเลิกXyzได้ การทำเช่นนั้นใน Kotlin เป็นอย่างไร? ตัวอย่างเช่นรหัสนี้มีข้อผิดพลาด: val something: Xyz? = createPossiblyNullXyz() something.foo() // Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Xyz?" แต่ถ้าฉันตรวจสอบโมฆะก่อนอนุญาตทำไม? val something: Xyz? = createPossiblyNullXyz() if (something != null) { something.foo() } ฉันจะเปลี่ยนหรือรักษาค่าที่ไม่ใช่nullโดยไม่ต้องมีการifตรวจสอบโดยสมมติว่าฉันรู้ว่ามันไม่เคยมีจริงnullหรือ ยกตัวอย่างเช่นที่นี่ฉันกำลังเรียกค่าจากแผนที่ที่ผมสามารถรับประกันได้อยู่และผลจากการไม่ได้get() nullแต่ฉันมีข้อผิดพลาด: val map = mapOf("a" …

3
ตัวดำเนินการ Kotlin double-bang (!!) คืออะไร
ฉันกำลังแปลง Java เป็น Kotlin ด้วย Android Studio ฉันได้รับผลกระทบสองครั้งหลังจากตัวแปรอินสแตนซ์ Double Bang คืออะไรและที่สำคัญกว่านั้นเอกสารนี้คืออะไร mMap!!.addMarker(MarkerOptions().position(london).title("Marker in London"))

8
ขยายคลาสข้อมูลใน Kotlin
คลาสข้อมูลดูเหมือนจะแทนที่ POJO ที่ล้าสมัยใน Java ค่อนข้างคาดหวังว่าคลาสเหล่านี้จะอนุญาตให้มีการสืบทอด แต่ฉันไม่เห็นวิธีที่สะดวกในการขยายคลาสข้อมูล สิ่งที่ฉันต้องการคือสิ่งนี้: open data class Resource (var id: Long = 0, var location: String = "") data class Book (var isbn: String) : Resource() รหัสข้างต้นล้มเหลวเนื่องจากการปะทะกันของcomponent1()วิธีการ การเพิ่มdataคำอธิบายประกอบทิ้งไว้ในคลาสใดคลาสหนึ่งเท่านั้นก็ไม่ทำงานเช่นกัน อาจมีสำนวนอื่นในการขยายคลาสข้อมูลหรือไม่ UPD: ฉันอาจใส่คำอธิบายประกอบเป็นคลาสย่อยของเด็กเท่านั้น แต่dataคำอธิบายประกอบจะจัดการกับคุณสมบัติที่ประกาศใน Constructor เท่านั้น นั่นคือฉันจะต้องประกาศคุณสมบัติของผู้ปกครองทั้งหมดopenและแทนที่พวกเขาซึ่งน่าเกลียด: open class Resource (open var id: Long = 0, open var location: …

6
วิธีแปลง List เป็น Map ใน Kotlin
ตัวอย่างเช่นฉันมีรายการสตริงเช่น: val list = listOf("a", "b", "c", "d") และฉันต้องการแปลงเป็นแผนที่โดยที่สตริงเป็นกุญแจ ฉันรู้ว่าฉันควรใช้.toMap()ฟังก์ชั่นนี้ แต่ฉันไม่รู้ว่าทำอย่างไรและฉันไม่ได้เห็นตัวอย่างของมัน
169 dictionary  kotlin 

30
ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอป: สะอาด' ไม่สามารถลบไฟล์ได้
ฉันกำลังพยายามสร้างโครงการ Android Studio Gradle ของฉันใหม่ (ที่มีรหัส Kotlin ส่วนใหญ่) แต่มันก็เริ่มโยนUnableToDeleteFileExceptionระหว่างกระบวนการทำความสะอาด / สร้างใหม่: Execution failed for task ':app:clean'. > Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar สิ่งนี้เริ่มต้นขึ้นหลังจากที่ฉันพยายามเปลี่ยนโครงสร้างแพ็คเกจของโครงการ น่าเสียดายที่ฉันทำได้โดยเปลี่ยนชื่อและย้ายโฟลเดอร์ซอร์สแทนที่จะทำการเปลี่ยนใหม่ผ่าน Android Studio ซึ่งเป็นแนวคิดที่ไม่ดี ฉันค้นหาวิธีแก้ไขปัญหานี้ตลอดทั้งวันและสิ่งเหล่านี้เป็นสิ่งที่ฉันพยายามทำเพื่อประโยชน์: ทำการซิงค์แบบ Gradle การติดตั้ง Java JRE และ Java SDK อีกครั้ง การติดตั้ง Android Studio เวอร์ชันล่าสุดอีกครั้ง (1.4); ย้อนกลับไปเป็นเวอร์ชั่น AS ก่อนหน้า (1.3); การทำให้แคช AS เป็นโมฆะและเริ่มต้นใหม่; การลบgradleและ.gradleไดเรกทอรีในไดเรกทอรีโครงการ …

13
การตั้งค่าข้อความใน EditText Kotlin
ฉันพยายามตั้งค่าข้อความใน EditText แต่มันบอกว่า: Type mismatch. Required: Editable Found: String รหัสของฉันมีดังนี้: String name = "Paramjeet" val nametxt = findViewById (R.id.nametxt) as EditText nametxt.text = name อย่าบอกว่าใช้setTextเพราะฉันใช้ kotlin ไม่ใช่ Java

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.