Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android转换为Kotlin。如何在超级构造函数中调用内部方法_Android_Class_Kotlin_Constructor_Super - Fatal编程技术网

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

Android转换为Kotlin。如何在超级构造函数中调用内部方法,android,class,kotlin,constructor,super,Android,Class,Kotlin,Constructor,Super,这是我的方法: private static class AvatarNotFound extends Throwable { public AvatarNotFound(String message, @NonNull AddressableAvatarView addressableAvatarView) { super(message + getErrorMessageSuffix(addressableAvatarView)); }

这是我的方法:

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是一个未解析的引用? 如何让构造器识别它?

试试看,这可能会帮助您:


您可以在这里使用companion对象,这将允许使用类名访问您的方法

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

你可以把getErrorMessageSuffix放在Yesm里面谢谢!!!就是这样。现在可以了。如果你回答这个问题,我会接受正确的答案。对不起,kotlin还是个新手,所以有时候会让人困惑
companion object
    {
        private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String 
         {
            return ". Addressable: $addressableAvatarView"
        }
    }