Android 转换为 Kotlin。如何在构造函数super中调用内部方法
Android conversion to Kotlin. How to call inner method in 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 returns 这段代码,将变成这样:
private open class AvatarNotFound(message: String, addressableAvatarView: AddressableAvatarView) : Throwable(message + getErrorMessageSuffix(addressableAvatarView)) {
private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String {
return ". Addressable: $addressableAvatarView"
}
}
但是它说 getErrorMessageSuffix
是一个未解决的引用?
我怎样才能让构造函数识别它?
试试这个可能对你有帮助:
companion object{
private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String {
return ". Addressable: " + addressableAvatarView.toString()
}
}
}
您可以在此处使用伴随对象,这将允许使用 class 名称访问您的方法。
companion object
{
private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String
{
return ". Addressable: $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 returns 这段代码,将变成这样:
private open class AvatarNotFound(message: String, addressableAvatarView: AddressableAvatarView) : Throwable(message + getErrorMessageSuffix(addressableAvatarView)) {
private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String {
return ". Addressable: $addressableAvatarView"
}
}
但是它说 getErrorMessageSuffix
是一个未解决的引用?
我怎样才能让构造函数识别它?
试试这个可能对你有帮助:
companion object{
private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String {
return ". Addressable: " + addressableAvatarView.toString()
}
}
}
您可以在此处使用伴随对象,这将允许使用 class 名称访问您的方法。
companion object
{
private fun getErrorMessageSuffix(addressableAvatarView: AddressableAvatarView): String
{
return ". Addressable: $addressableAvatarView"
}
}