Я привык к разработке в Python, но по соображениям работы приходится делать это на Java. Я столкнулся с задачей, которая была бы тривиальной в Python, и я хотел бы получить некоторые советы о том, как правильно обращаться с этим в Java.
Мне нужно проанализировать строку продолжительности. Это может быть в миллисекундах (235 мс) или секундах (32 с). И это также может быть "< 1ms" в качестве специального случая.
Разбор происходит не менее трех раз в коде, поэтому я хотел бы разделить его на метод. Но мой код действительно должен знать, а не только результирующее значение в мс, но также и то, было ли оно в мс или s и было ли оно < 1ms (0 - другое значение).
В Python я бы просто вернул кортеж:
return (value_in_milliseconds,is_in_seconds,is_under_1ms)
В C я бы определил структуру этих трех значений и вернул ее. В Паскале я бы определил запись.
В Java я не могу вернуть кортеж, и я не могу определить запись, и что мне делать?
Единственное, о чем я могу думать, это создать класс, представляющий значение продолжительности. Конструктор возьмет строку и проанализирует ее. Класс будет иметь поля: int milliseconds, boolean inSeconds, boolean под 1ms.
Но это звучит ужасно тяжело - есть ли лучшее решение?