Объявите второй метод, который принимает Object
в качестве параметра.
public static void logger(Object content) {
logger(content.toString());
}
Этот метод делегирует вашему более раннему методу запись строкового представления вашего объекта, независимо от его типа.
Теперь вы можете вызывать logger()
для строк (например, logger("The answer")
, а также для любого другого типа (например, logger(42)
).
Обратите внимание, что бокс (упаковка примитивного типа, такого как int
, в объект, такой как Integer
) происходит автоматически.
Если вы хотите печатать более одного объекта за раз, вы должны предоставить метод, который принимает массив varargs.
public static void logger(Object... objects) {
String msg = Stream.of(objects).map(Object::toString).collect(Collectors.joining());
System.out.println(msg);
}
При вызове logger("The answer is ", 42)
будет напечатано «Ответ 42».