I define an enum class that implements Neo4j\'s RelationshipType
:
enum class MyRelationshipType : RelationshipType {
// ...
}
The example above is working with an interface having a property name
instead of a function name()
.
interface Name {
val name: String;
}
enum class Color : Name {
Blue
}
it is a kotlin bug-KT-14115 even if you makes the enum
class implements the interface which contains a name()
function is denied.
interface Name {
fun name(): String;
}
enum class Color : Name;
// ^--- the same error reported
BUT you can simulate a enum
class by using a sealed
class, for example:
interface Name {
fun name(): String;
}
sealed class Color(val ordinal: Int) : Name {
fun ordinal()=ordinal;
override fun name(): String {
return this.javaClass.simpleName;
}
//todo: simulate other methods ...
};
object RED : Color(0);
object GREEN : Color(1);
object BLUE : Color(2);