Как разработать метод класса, который возвращает два разных типа возвращаемого значения? - PullRequest
1 голос
/ 16 декабря 2011

Подкласс, имеющий небольшую логику и возвращающий логическое истину / ложь или сообщение об ошибке, но в случае какого-либо исключения он попадает в тот же класс и сообщение об ошибке только для указания верхнему классу, который отображал сообщение об ошибке в UI.iЯ не могу думать о том, как управлять возвращаемым значением подкласса, потому что, если подкласс работает успешно, он возвращает логическое значение true / false, но в случае ошибки он возвращает сообщение об ошибке String, в этот момент я обнаружил проблему двух различных типов возвращаемого значения изПожалуйста, помогите мне, как я могу решить эту проблему.

Ответы [ 5 ]

5 голосов
/ 16 декабря 2011

У вас есть два варианта: вернуть объект

class Status {
   Boolean succesful;
   String errorText;
}

или вызвать исключение в случае ошибки

throw new Exception( errorText );
3 голосов
/ 16 декабря 2011

Почему вы возвращаете код ошибки String? Просто брось свое исключение (может быть, в другое) и получи его выше.

2 голосов
/ 16 декабря 2011

Ваш вопрос не очень понятен.Насколько я понимаю, вы должны вернуть логическое значение или исключение.Вы должны установить свое сообщение об ошибке в исключении (см .: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html#Exception%28java.lang.String%29).. Вы также можете вернуть различные исключения, если вам нужно.

0 голосов
/ 16 декабря 2011

Подумайте об использовании функционального Java-класса Either.Это реализация для хранения одного из двух значений.

Либо

0 голосов
/ 16 декабря 2011

Если ваш подкласс возвращает переменную типа Object, вы можете проверить его тип данных выше.

//Success
Object object = new Boolean();

//Fail
Object object = new String();

if(object instanceOf Boolean) {
//Do something
} else if(object instanceOf String) {
//Do something else
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...