返回类型不是重写成员“”的返回类型的子类型?

1yjd4xko  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(267)

我正在尝试对一个函数进行子类化 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/notifications/notifications/declineinsufficientfundsbalanceonlycardnotification.kt:(21,53):“gettrackingnotificationcategory”的返回类型不是重写成员“@nonnull protected/protected and package/abstract fun gettrackingnotificationcategory():com.venmo.notifications.actionablenotification”的返回类型的子类型
我不理解这个错误消息,因为kotlin继承类的返回类型是字符串,基类也是?

izj3ouym

izj3ouym1#

也许用jetbrains注解来注解抽象方法 @NotNull 会更好。我看了一下这个发现的。希望这对你有帮助。

7bsow1i6

7bsow1i62#

虽然我不完全确定为什么这样做,但当我指定 String 重写函数的类型,而不是依赖类型推断:

override fun getTrackingNotificationCategory(): String = ""

相关问题