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"
}
}