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

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

11
หลายตัวแปรให้ใน Kotlin
มีวิธีใดบ้างในการเชื่อมโยงหลายตัวให้กับตัวแปรที่เป็นโมฆะหลายตัวใน kotlin? fun example(first: String?, second: String?) { first?.let { second?.let { // Do something just if both are != null } } } ฉันหมายถึงสิ่งนี้: fun example(first: String?, second: String?) { first?.let && second?.let { // Do something just if both are != null } }
127 kotlin 

19
Android Room - แบบสอบถามแบบเลือกง่าย - ไม่สามารถเข้าถึงฐานข้อมูลในเธรดหลัก
ฉันพยายามที่ตัวอย่างมีห้องคงทนห้องสมุด ฉันสร้างเอนทิตี: @Entity public class Agent { @PrimaryKey public String guid; public String name; public String email; public String password; public String phone; public String licence; } สร้างคลาส DAO: @Dao public interface AgentDao { @Query("SELECT COUNT(*) FROM Agent where email = :email OR phone = :phone OR licence = :licence") …

3
Kotlin: Public get private set var
อะไรคือวิธีที่ถูกต้องในการกำหนด var ใน kotlin ที่มีตัวตั้งค่า public getter และ private (แก้ไขได้ภายในเท่านั้น)
126 kotlin 

1
“ ชอบเรียกใช้ตัวประมวลผลกริชมากกว่าคลาสนั้นแทน” ใน Kotlin
ฉันได้รับบันทึกนี้ในการสร้างเมื่อใดก็ตามที่ฉันทำการฉีดลงในคลาส kotlin (btw ฉันมีโครงการ Android แบบผสมที่มีทั้ง kotlin และ java) ตัวอย่างเช่นหลังจากงาน gradle นี้: compileStagingDebugJavaWithJavac(StagingDebug เป็นตัวแปรการสร้างของฉัน) ฉันได้รับข้อความนี้: "หมายเหตุ: การสร้าง MembersInjector หรือ Factory สำหรับ com.packageNameXXX.CourseDiscoveryMapFragment ต้องการเรียกใช้ตัวประมวลผลกริชในคลาสนั้นแทน" รหัสCourseDiscoveryMapFragmentของฉันสามารถดูได้ที่นี่: class CourseDiscoveryMapFragment : Fragment(){ @Inject lateinit var presenter: CourseDiscoveryMapPresenter lateinit var mapView: MapView override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = …
124 android  kotlin  dagger 


11
วิธีแยกวิเคราะห์ JSON ใน Kotlin
ฉันได้รับสตริงออบเจ็กต์ JSON ที่ค่อนข้างลึกจากบริการซึ่งฉันต้องแยกวิเคราะห์ไปยังออบเจ็กต์ JSON จากนั้นแมปกับคลาส ฉันจะแปลงสตริง JSON เป็นวัตถุใน Kotlin ได้อย่างไร หลังจากนั้นการแมปไปยังชั้นเรียนที่เกี่ยวข้องฉันใช้ StdDeserializer จาก Jackson ปัญหาเกิดขึ้นในขณะที่อ็อบเจ็กต์มีคุณสมบัติที่ต้องถูก deserialized ลงในคลาสด้วย ฉันไม่สามารถรับตัวทำแผนที่วัตถุได้อย่างน้อยฉันก็ไม่รู้ว่าภายใน deserializer อื่นเป็นอย่างไร ขอบคุณล่วงหน้าสำหรับความช่วยเหลือ โดยพื้นฐานแล้วฉันกำลังพยายามลดจำนวนการอ้างอิงที่ฉันต้องการดังนั้นหากคำตอบมีไว้สำหรับการจัดการ JSON เท่านั้นและการแยกวิเคราะห์ก็เพียงพอแล้ว
122 java  json  kotlin 

9
"break" และ "ต่อ" ใน "forEach" ใน Kotlin
Kotlin มีฟังก์ชั่นการทำซ้ำที่ดีมากเช่นforEachหรือrepeatแต่ฉันไม่สามารถทำให้ตัวดำเนินการbreakและcontinueตัวดำเนินการทำงานร่วมกับพวกเขาได้ (ทั้งในและนอกพื้นที่): repeat(5) { break } (1..5).forEach { continue@forEach } เป้าหมายคือการเลียนแบบลูปตามปกติโดยมีไวยากรณ์การทำงานใกล้เคียงที่สุด เป็นไปได้แน่นอนใน Kotlin เวอร์ชันเก่า ๆ บางรุ่น แต่ฉันพยายามสร้างไวยากรณ์ขึ้นมาใหม่ ปัญหาอาจเป็นข้อบกพร่องเกี่ยวกับป้ายกำกับ (M12) แต่ฉันคิดว่าตัวอย่างแรกควรใช้งานได้อยู่ดี สำหรับฉันแล้วดูเหมือนว่าฉันเคยอ่านเคล็ดลับ / คำอธิบายประกอบพิเศษที่ไหนสักแห่ง แต่ฉันไม่พบข้อมูลอ้างอิงใด ๆ ในเรื่องนี้ อาจมีลักษณะดังต่อไปนี้: public inline fun repeat(times: Int, @loop body: (Int) -> Unit) { for (index in 0..times - 1) { body(index) } }
122 loops  foreach  lambda  kotlin 

2
คุณสมบัติต้องเริ่มต้นหรือเป็นนามธรรม
มันต้องเป็นคำถามที่โง่มาก แต่ฉันยังใหม่กับ Kotlin และฉันไม่พบวิธีแก้ปัญหาใด ๆ จะประกาศเขตข้อมูลชั้นเรียนได้อย่างไร? เช่นเดียวกับที่เราสามารถมีได้ใน java: protected SharedPreferences mSharedPreferences; และในภายหลังonCreate(): mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) ตอนนี้ฉันสามารถใช้งานได้ทุกที่ที่ต้องการ (ในคลาสย่อยของกิจกรรมพื้นฐานนี้) ฉันพยายามทำเช่นเดียวกันใน Kotlin: protected var sharedPreferences : SharedPreferences และในonCreate(): sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) แต่ฉันได้รับคำเตือน: "คุณสมบัติต้องเริ่มต้นหรือเป็นนามธรรม"
121 android  kotlin 

1
แปลง Kotlin Array เป็น Java varargs
ฉันจะแปลง Kotlin ของฉันArrayเป็น varargs Java ได้String[]อย่างไร val angularRoutings = arrayOf<String>("/language", "/home") // this doesn't work web.ignoring().antMatchers(angularRoutings) จะส่ง ArrayList ไปยังพารามิเตอร์เมธอด varargs ได้อย่างไร

6
ฟังก์ชัน Suspend หมายถึงอะไรใน Kotlin Coroutine
ฉันกำลังอ่าน Kotlin Coroutine และรู้ว่ามันขึ้นอยู่กับsuspendฟังก์ชัน แต่suspendหมายความว่าอย่างไร? โครูทีนหรือฟังก์ชันถูกระงับ? จากhttps://kotlinlang.org/docs/reference/coroutines.html โดยทั่วไปโครูทีนคือการคำนวณที่สามารถระงับได้โดยไม่ต้องบล็อกเธรด ฉันได้ยินคนพูดว่า "ระงับฟังก์ชัน" บ่อยๆ แต่ฉันคิดว่ามันเป็นโครูทีนที่ถูกระงับเพราะรอให้ฟังก์ชันเสร็จสิ้น? "ระงับ" มักจะหมายถึง "หยุดการทำงาน" ในกรณีนี้โครูทีนไม่ได้ใช้งาน 🤔เราควรบอกว่าโครูทีนถูกระงับหรือไม่? โครูทีนใดถูกระงับ จากhttps://kotlinlang.org/docs/reference/coroutines.html หากต้องการดำเนินการเปรียบเทียบต่อไป await () อาจเป็นฟังก์ชันระงับ (ดังนั้นจึงสามารถเรียกได้จากภายในบล็อก async {}) ที่ระงับโครูทีนจนกว่าการคำนวณบางส่วนจะเสร็จสิ้นและส่งคืนผลลัพธ์: async { // Here I call it the outer async coroutine ... // Here I call computation the inner coroutine val result = …

13
มีวิธีที่สะดวกในการสร้างคลาสข้อมูลแบบ Parcelable ใน Android ด้วย Kotlin หรือไม่
ฉันกำลังใช้AutoParcel ที่ยอดเยี่ยมในโปรเจ็กต์ Java ของฉันซึ่งอำนวยความสะดวกในการสร้างคลาส Parcelable ตอนนี้ Kotlin ซึ่งฉันพิจารณาสำหรับโปรเจ็กต์ถัดไปของฉันมีแนวคิดเกี่ยวกับคลาสข้อมูลนี้ซึ่งสร้างวิธีการเท่ากับแฮชโค้ดและ toString โดยอัตโนมัติ มีวิธีที่สะดวกในการสร้างคลาสข้อมูล Kotlin แบบ Parcelable ด้วยวิธีที่สะดวก (โดยไม่ต้องใช้วิธีการด้วยตนเอง) หรือไม่?


1
จะสร้างอินสแตนซ์ของคลาสนามธรรมที่ไม่ระบุชื่อใน Kotlin ได้อย่างไร
สมมติว่าKeyAdapterเป็นคลาสนามธรรมที่มีหลายวิธีที่สามารถลบล้างได้ ใน java ฉันสามารถทำได้: KeyListener keyListener = new KeyAdapter() { @Override public void keyPressed(KeyEvent keyEvent) { // ... } }; วิธีการทำเช่นเดียวกันใน Kotlin?

5
"ข้อมูลไม่เพียงพอที่จะสรุปพารามิเตอร์ T" กับ Kotlin และ Android
ฉันพยายามที่จะทำซ้ำ ListView ต่อไปนี้ในแอป Android ของฉันโดยใช้ Kotlin: https://github.com/bidrohi/KotlinListView ขออภัยฉันได้รับข้อผิดพลาดไม่สามารถแก้ไขได้ด้วยตนเอง นี่คือรหัสของฉัน: MainActivity.kt: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val listView = findViewById(R.id.list) as ListView listView.adapter = ListExampleAdapter(this) } private class ListExampleAdapter(context: Context) : BaseAdapter() { internal var sList = arrayOf("Eins", "Zwei", "Drei") private val mInflator: LayoutInflater init { this.mInflator = LayoutInflater.from(context) …

7
วิธีใช้ TypeToken + generics กับ Gson ใน Kotlin
ฉันไม่สามารถรับรายการประเภททั่วไปจากคลาสที่กำหนดเองได้ (เทิร์น): val turnsType = TypeToken<List<Turns>>() {}.type val turns = Gson().fromJson(pref.turns, turnsType) มันกล่าวว่า: cannot access '<init>' it is 'public /*package*/' in 'TypeToken'

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