Я сталкивался с такой же ситуацией в моем прошлом.
Оба решения, которые вы упомянули, осуществимы, поскольку вы сказали, что они могут быть дорогими.
На самом деле Java не поддерживает множественные возвращаемые значения из метода.
Решение, которое я реализовал, было
Я попытаюсь разобрать / создать / кодировать строку таким образом, после декодирования я смогу узнать, что мне нужно делать.
В вашем случае я бы выбрал следующий путь
Создайте строку наподобие returnValue, пусть эта строка начинается с 0 или 1, если ее 1 равно true, иначе false.
и добавьте второе возвращаемое значение к этому.
Например, вы пытаетесь вернуть как «returnValue1» и «true»
для истинного давайте оставим это 1, а для ложного давайте оставим это 2
когда вы сделаете это, ваше возвращаемое значение станет "1returnValue1"