Метод 1:
Вы можете вернуть Any?
объект
private val myRepository() : Any? {
// Your stuff here
}
Any
объект в основном означает, что вы можете вернуть все, что захотите, но будьте внимательны, чтобы проверить возвращение в родительском методе.
?
означает, что вы также можете вернуть объект null
. Проверьте это тоже в родительском методе.
Метод 2:
Или сделайте все эти вызовы из вашего метода, который вызывает этот, с if
и else
s
Метод 3:
Другой способ сделать это - вернуть оба типа указателей:
private val myRepository(resul1 : Object1, result2 : Object2, ...) {
if (function_to_get_result1_fails)
result1 = Object1() // You set result1 as a basic empty object of type Object1
else if (function_to_get_result2_fails)
result2 = Object2()
// etc.
}
Затем, в вашем родительском методе, сделайте проверку следующим образом:
myRepository(object1, object2, ...)
if (object1.someDataInObject1 != -1) // Set an un-instancied variable as -1 to know if the object is empty or not
doSomething()
else if (object2.someDataInObject2 != -1)
doSomethingElse()
// etc.
Тем не менее, предпочтительнее метод 1, или, может быть, метод 2, но метод 3 «грязный» и потребляет много ресурсов даром.