التابع Enum.clone() في لغة Kotlin
يطلق التابع clone()
استثناءً (exception) لأنّ ثوابت enum لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum
من أن ترِث من الصنف Cloneable
.
البنية العامة
protected fun clone(): Any
أمثلة
في الشيفرة الآتية ننشئ صنفًا من النوع Enum
باسم ColorEnum
مكونًا من أربعة ثوابت RED
و BLUE
و GREEN
و ORANGE
، ثم ننشئ متغيرًا x
يحتوي القيمة RED
للصنف ColorEnum
، ثم نستدعي الدالة equals()
عبر x
، وكنتيجة لذلك سيطلق المُصرّف استثناء:
fun main(args: Array<String>) {
val x = ColorEnum.Red
val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum'
}
enum class ColorEnum(val colorCode: Int)
{
Red(2),
Blue(11212),
Green(21212),
Orange(212121)
}
انظر أيضًا
- الخاصيّة
ordinal
: تعيد ترتيب مُركّبة الكائنenum
الذي استُدعيت عبره، أي ترتيبها في تصريح الكائنenum،
بحيث تأخذ المُركّبة الأولى العدد0
. - الخاصيّة
name
:تعيد اسم مُركّبة الكائنenum
الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن.