Единственное отличие состоит в том, что хотя возвращаемые примитивы являются "неизменяемыми" по своей природе, возврат объекта, подобного этому, может позволить вызывающей стороне изменить свойства объекта (при условии, что MyObject
является изменяемым), что может повлиять на внутренние компоненты вашего класса. реализация. (Инструменты анализа кода, такие как FindBugs, проверяют именно это. Примитивы на самом деле изменчивы, но когда они возвращаются из класса, нет способа обновить значение класса с помощью возвращаемого примитива.) С учетом этого обычно безопаснее сделать ставку на возврат копии / clone - понимание того, что при этом может возникнуть потеря производительности.
Какой бы вариант вы ни выбрали, пожалуйста, задокументируйте, что ваш класс или отдельные методы делают с помощью Javadoc.