«Возвращаемый тип ... не является подтипом возвращаемого типа переопределенного члена»? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь создать подкласс для функции ActionableNotification.java, которая выглядит примерно так:

package com.venmo.notifications.notifications;

import android.content.ContextWrapper;
import com.squareup.picasso.Target;

public abstract class ActionableNotification extends ContextWrapper implements Target {

    @NonNull
    protected abstract String getTrackingNotificationCategory();
    // ...
}

Класс наследования читает примерно так:

class DeclineInsufficientFundsBalanceOnlyCardNotification(context : Context, intent : Intent) : ActionableNotification(context, intent) {

    override fun getTrackingNotificationCategory() = ""
    // ...
 }

Однако, когда я пытаюсьскомпилировать я получаю эту ошибку:

/ Users / kupeek / dev / venmo-android / p2p-app / src / main / java / com / venmo / уведомления / уведомления / DeclineInsufficientFundsBalanceOnlyCardNotification.kt: (21, 53): возвращаемый тип 'getTrackingNotificationCategory' не является подтипом возвращаемого типа переопределенного члена '@NonNull protected / protected и package / abstract fun getTrackingNotificationCategory (): строка, определенная в com.venmo.notifications.notifications.ActionableNotification '

Я не понимаю это сообщение об ошибке, поскольку возвращаемый тип наследующего класса Kotlin - это строка, как и базовый класс?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Возможно, аннотирование абстрактного метода с помощью аннотации JetBrains @NotNull будет лучше.Я нашел это, взглянув на это .Надеюсь, это поможет вам.

0 голосов
/ 05 февраля 2019

Хотя я не совсем уверен, почему это работает, ошибка исчезла, когда я указал тип String для переопределяющей функции вместо того, чтобы полагаться на вывод типа:

override fun getTrackingNotificationCategory(): String = ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...