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

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

20
น่าเสียดายที่ MyApp หยุดทำงาน ฉันจะแก้ปัญหานี้ได้อย่างไร
ฉันกำลังพัฒนาแอปพลิเคชันและทุกครั้งที่เปิดใช้งานฉันจะได้รับข้อความ: น่าเสียดาย MyApp หยุดลง ฉันจะแก้ไขปัญหานี้ได้อย่างไร เกี่ยวกับคำถามนี้ - เห็นได้ชัดว่าได้รับแรงบันดาลใจจากการติดตามสแต็กคืออะไรและฉันจะใช้เพื่อแก้ไขข้อผิดพลาดแอปพลิเคชันของฉันได้อย่างไร มีคำถามมากมายที่ระบุว่าแอปพลิเคชันของพวกเขาหยุดทำงานโดยไม่มีรายละเอียดเพิ่มเติม คำถามนี้มีวัตถุประสงค์เพื่อสอนให้โปรแกรมเมอร์ Android มือใหม่เกี่ยวกับวิธีการลองและแก้ไขปัญหาด้วยตนเองหรือถามคำถามที่เหมาะสม


28
ไม่สามารถ inline bytecode ที่สร้างด้วย JVM เป้าหมาย 1.8 เป็น bytecode ที่กำลังสร้างด้วย JVM target 1.6
เมื่อพยายามเรียกใช้ตัวอย่าง CorDapp ( https://github.com/corda/cordapp-example ) ผ่าน IntelliJ ฉันได้รับข้อผิดพลาดดังต่อไปนี้: ไม่สามารถ inline bytecode ที่สร้างด้วย JVM เป้าหมาย 1.8 เป็น bytecode ที่กำลังสร้างด้วย JVM target 1.6 ฉันจะแก้ไขการตั้งค่า IntelliJ เพื่อให้ bytecode ทั้งหมดถูกสร้างขึ้นด้วยเป้าหมาย JVM เดียวกันได้อย่างไร


7
จะตรวจสอบได้อย่างไรว่าตัวแปร“ Lateinit” ได้รับการเริ่มต้นแล้ว?
ฉันสงสัยว่ามีวิธีการตรวจสอบว่าlateinitตัวแปรได้รับการเริ่มต้น ตัวอย่างเช่น: class Foo() { private lateinit var myFile: File fun bar(path: String?) { path?.let { myFile = File(it) } } fun bar2() { myFile.whateverMethod() // May crash since I don't know whether myFile has been initialized } }
428 kotlin 


9
ตัวอย่างตัวจัดการสัญญาณเตือน
ฉันต้องการใช้ฟังก์ชั่นกำหนดเวลาในโครงการของฉัน ดังนั้นฉันจึง Googled สำหรับโปรแกรม Alarm manager แต่ฉันไม่สามารถหาตัวอย่างใด ๆ ได้ ทุกคนสามารถช่วยฉันด้วยโปรแกรมจัดการปลุกพื้นฐานได้หรือไม่?

30
Val and Var ใน Kotlin
ความแตกต่างระหว่างvarและvalใน Kotlin คืออะไร? ฉันได้ไปที่ลิงค์นี้: https://kotlinlang.org/docs/reference/properties.html ตามที่ระบุไว้ในลิงค์นี้: ไวยากรณ์แบบเต็มของการประกาศคุณสมบัติแบบอ่านอย่างเดียวแตกต่างจากวิธีที่ไม่แน่นอนในสองวิธี: มันเริ่มต้นด้วย val แทนที่จะเป็น var และไม่อนุญาตให้ setter แต่ก่อนมีตัวอย่างที่ใช้ setter fun copyAddress(address: Address): Address { val result = Address() // there's no 'new' keyword in Kotlin result.name = address.name // accessors are called result.street = address.street // ... return result } ความแตกต่างที่แน่นอนระหว่างvarและvalคืออะไร? ทำไมเราต้องการทั้งสองอย่าง นี่ไม่ใช่ของตัวแปรใน Kotlin …
289 kotlin 

8
Kotlin - การเริ่มต้นคุณสมบัติโดยใช้“ โดยขี้เกียจ” กับ“ ล่าช้า”
ใน Kotlin หากคุณไม่ต้องการเริ่มต้นคุณสมบัติคลาสภายในตัวสร้างหรือในส่วนบนของคลาสคุณมีสองตัวเลือกโดยทั่วไป (จากการอ้างอิงภาษา): การเริ่มต้น Lazy lazy () คือฟังก์ชั่นที่รับแลมบ์ดาและส่งคืนอินสแตนซ์ของ Lazy ซึ่งสามารถทำหน้าที่เป็นตัวแทนในการดำเนินการกับคุณสมบัติ lazy: การเรียกครั้งแรกเพื่อรับ () เรียกใช้แลมบ์ดาที่ส่งผ่านขี้เกียจ () และจดจำผลลัพธ์ เพื่อรับ () เพียงแค่ส่งคืนผลลัพธ์ที่จดจำ ตัวอย่าง public class Hello { val myLazyString: String by lazy { "Hello" } } ดังนั้นการโทรแรกและการโทรย่อยทุกที่ไปยังmyLazyStringจะส่งคืน"Hello" การเริ่มต้นช้า โดยปกติคุณสมบัติที่ประกาศว่ามีชนิดที่ไม่เป็น null จะต้องเริ่มต้นในตัวสร้าง อย่างไรก็ตามบ่อยครั้งที่สิ่งนี้ไม่สะดวก ตัวอย่างเช่นคุณสมบัติสามารถเริ่มต้นผ่านการฉีดพึ่งพาหรือในวิธีการตั้งค่าของการทดสอบหน่วย ในกรณีนี้คุณไม่สามารถจัดหา initializer ที่ไม่ใช่ค่า null ในตัวสร้าง แต่คุณยังต้องการหลีกเลี่ยงการตรวจสอบค่า Null เมื่ออ้างอิงคุณสมบัติภายในเนื้อความของคลาส เพื่อจัดการกรณีนี้คุณสามารถทำเครื่องหมายคุณสมบัติด้วยตัวปรับล่าช้า: …
280 properties  kotlin 

6
อะไรคือความแตกต่างระหว่าง "const" และ "val"?
ฉันเพิ่งอ่านเกี่ยวกับconstคำหลักและฉันสับสนมาก! ฉันไม่สามารถหาความแตกต่างระหว่างconstและvalคำหลักได้ฉันหมายความว่าเราสามารถใช้ทั้งสองอย่างนี้เพื่อสร้างตัวแปรที่ไม่เปลี่ยนรูปแบบได้หรือไม่
276 constants  kotlin 

10
การส่งสมาร์ทเป็น 'ประเภท' เป็นไปไม่ได้เนื่องจาก 'ตัวแปร' เป็นคุณสมบัติที่ไม่แน่นอนที่อาจเปลี่ยนแปลงได้ในเวลานี้
และมือใหม่ Kotlin ถามว่า "ทำไมรหัสต่อไปนี้ไม่คอมไพล์?": var left: Node? = null fun show() { if (left != null) { queue.add(left) // ERROR HERE } } การส่งสมาร์ทไปที่ 'โหนด' เป็นไปไม่ได้เพราะ 'ซ้าย' เป็นคุณสมบัติที่ไม่แน่นอนที่อาจเปลี่ยนแปลงได้ในเวลานี้ ฉันได้รับนั่นleftคือตัวแปรที่ผันแปรได้ แต่ฉันกำลังตรวจสอบอย่างชัดเจนleft != nullและleftเป็นประเภทNodeดังนั้นทำไมจึงไม่สามารถส่งไปที่ประเภทนั้นได้อย่างชาญฉลาด ฉันจะแก้ไขสิ่งนี้ได้อย่างสวยงามได้อย่างไร :)
275 kotlin 

5
Kotlin และ ActivityTestRule ใหม่: @Rule ต้องเป็นสาธารณะ
ฉันพยายามทำการทดสอบ UI สำหรับแอพ Android ของฉันใน Kotlin เนื่องจากระบบใหม่ที่ใช้ ActivityTestRule ฉันไม่สามารถทำงานได้: มันคอมไพล์อย่างถูกต้องและในขณะรันไทม์ฉันได้รับ: java.lang.Exception: The @Rule 'mActivityRule' must be public. at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67) at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55) at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:38) at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:57) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:45) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) …

9
วิธีการเริ่มต้นได้รับการรองรับเฉพาะการเริ่มต้นด้วย Android N
ฉันอัพเกรดเป็น android studio 3.1 และฉันได้รับข้อผิดพลาดต่อไปนี้: Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner) Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of(D8)} นี่คือการกำหนดค่า gradle ของฉัน: compileSdkVersion 27 //buildToolsVersion '27.0.3' defaultConfig { minSdkVersion 16 …
262 android  java-8  kotlin 



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