Kotlin: Public get private set var


126

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

คำตอบ:


194
var setterVisibility: String = "abc" // Initializer required, not a nullable type
    private set // the setter is private and has the default implementation

ดู: Properties Getter และ Setter


13
โปรดทราบว่าprivate setต้องขึ้นบรรทัดใหม่
Jasper Blues

30
... หรืออยู่ในบรรทัดเดียวกันหลังอัฒภาค:var abc: String = ""; private set
Boris B.

4
ฉันสูญเสียสิ่งที่ต้องทำกับฟิลด์ตัวสร้างหลัก
androidguy

2
@ user3175580 นี้ไม่ได้ ใช้ฟิลด์โลคัลภายในคอนสตรัคเตอร์หลักจากนั้นกำหนดค่าให้กับคุณสมบัติเช่น "class Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... private setมิฉะนั้นคุณจะต้องเพิ่มอัฒภาคก่อน
Moses Aprico


3

var name : String = "Peter"
    private set

โดยค่าเริ่มต้นคุณสมบัติและฟังก์ชันทั้งหมดเป็นสาธารณะใน Kotlin ดังนั้น setter จะต้องถูกประกาศอย่างชัดเจนว่าเป็นส่วนตัวในขณะที่ getter เป็นสาธารณะโดยค่าเริ่มต้น

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