Невозможно создать экземпляр абстрактного класса (Random) - PullRequest
2 голосов
/ 23 мая 2019

Я пытаюсь выучить Kotlin, поэтому я следовал учебнику в интернете, где инструктор написал код, который отлично с ними работал, но он дает мне ошибку.

Это ошибка

Ошибка: (26, 17) Котлин: Невозможно создать экземпляр абстрактного класса

import kotlin.random.Random

fun main(args: Array<String>) {
    feedTheFish()
}

fun feedTheFish() {
    val day = randomDay()
    val food = "pellets"
    print("Today is ${day} and the fish eat ${food}")
}


fun randomDay():String {
    val week = listOf ("Monday", "Tuesday", "wednesday", "thursday", "friday", "saturday", "sunday")
    return week[ Random().nextInt(7)]
}

Я получаю ошибку из оператора return, я думаю, из Random. Пожалуйста, помогите мне понять это и исправить этот код.

Ответы [ 2 ]

3 голосов
/ 23 мая 2019

Просто удалите скобки: Random.nextInt(7).

Подобным образом он использует сопутствующий объект (Default) класса Random, который реализует абстрактный класс Random с поведением по умолчанию.

Из документации :

Сопутствующий объект Random.Default является экземпляром Random по умолчанию

0 голосов
/ 23 мая 2019

Это произошло потому, что вы пытаетесь вызвать функцию абстрактного класса, но у абстрактного класса нет экземпляра.Вместо этого вы можете использовать статическую функцию из объекта-компаньона Random

Random.nextInt(yourIntValue)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...