Класс Object
имеет toString()
, который наследуется каждым классом в Java (поскольку сам класс наследуется от Object
). Будет вызван этот toString()
(если только он не будет переопределен, в этом случае будет вызван переопределенный конкретный объект toString()
).
Вы ничего не можете сделать, чтобы этого не произошло.
С другой стороны, как выглядит ваш метод? Если у вас public myMethod(String arg)
и вы звоните myMethod(new FileEntry())
, я почти уверен, что это приведет к ошибке во время компиляции.
Конечно, если у вас есть перегруженный метод с Object arg
в качестве параметра, то этот метод будет вызываться. Внутренне этот метод, вероятно, вызывает toString()
на arg
. Кроме того, использование объекта, который не является строкой в строковом контексте (например, если вы связываете его со строкой), приводит к неявному вызову toString()
этого объекта (который может быть переопределенным или по умолчанию из от Object
).
Чтобы получить более симпатичный результат из toString()
, вы должны переопределить toString()
в классе FileEntry
, чтобы он печатал что-то, что имеет больше смысла.