2015-01-29 2 views

ответ

1

Они идентичны. См. javadocs. Прямые цитаты из ссылки:

getPath() 
    Converts this abstract pathname into a pathname string. 

toString() 
    Returns the pathname string of this abstract pathname. 
    This is just the string returned by the getPath() method. 
1

Метод ToString() для класса java.io.File перезаписывается просто уравнять GetPath(), так что они будут возвращать один и тот же результат.

Это будет очень ясно, как только вы читаете источник здесь: toString()

3

Метод toString() определяется на всех классов Java. Он предназначен для отладки целей и, если явно не определено пользователем, нельзя полагаться ни на что иное, кроме как на отображение пользователю.

На практике выход не меняет между версиями, а во многих случаях, вы можете быть уверены, что это будет то, что вы хотите, но, в принципе, вы должны избегать использования toString() кроме печатных материалов для пользователя.

И поэтому getPath() существует. Этот метод имеет действительно хорошо определенное выходное значение, которое также гарантируется методами, которые принимают String, представляя путь.

Итак, если вы собираетесь использовать этот путь внутри, используйте getPath(). Если вы собираетесь распечатать его в качестве средства отладки, используйте toString().

0

Разница заключается в том, в каком обстоятельстве вы должны использовать тот или иной. Метод getPath всегда возвращает представление String для пути к файлу. Так что если вы хотите (передать путь к другому методу и т. Д.), Вы должны вызвать этот метод.

Но если вы хотите преобразовать файл в текстовую презентацию (возможно, для ведения журнала), используйте метод toString (see this question as well). Причина, по которой я говорю это, заключается в том, что если вы используете метод toString, где вы должны использовать метод getPath, и если реализация toString изменится (возможно, чтобы показать размер файла также), тогда ваш код сломается.

0

Если вы посмотрите на функцию java.io.file toString, на самом деле называет getter пути.

public String toString() { 
    return getPath(); 
} 
Смежные вопросы