Android转换为Kotlin。如何在构造函数中调用内部方法

时间:2019-07-11 15:00:01

标签: android class kotlin constructor super

这是我的方法:

private static class AvatarNotFound
        extends Throwable
{
    public AvatarNotFound(String message, @NonNull AddressableAvatarView addressableAvatarView)
    {
        super(message + getErrorMessageSuffix(addressableAvatarView));
    }

    private static String getErrorMessageSuffix(@NonNull AddressableAvatarView addressableAvatarView)
    {
        return ". Addressable: " + addressableAvatarView.toString();
    }
}

转换为Kotlin会返回此代码,该代码将变为:

   private open class AvatarNotFound(message: String, addressableAvatarView: AddressableAvatarView) : Throwable(message + getErrorMessageSuffix(addressableAvatarView)) {

    private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String {
        return ". Addressable: $addressableAvatarView"
    }
   }

但是它说getErrorMessageSuffix是一个未解决的引用吗? 如何让构造函数识别它?

2 个答案:

答案 0 :(得分:1)

尝试一下可能会帮助您:

    companion object{
        private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String {
            return ". Addressable: " + addressableAvatarView.toString()
        }
    }
}

答案 1 :(得分:0)

您可以在此处使用伴随对象,这将使您可以使用类名访问方法。

companion object
    {
        private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String 
         {
            return ". Addressable: $addressableAvatarView"
        }
    }