Каков самый вводящий в заблуждение метод в Java Base API? [закрыто]
Недавно я пытался преобразовать строковый литерал вboolean
когда методboolean Boolean.getBoolean(String name)
выскочил из окна автозаполнения. Был и другой способ (boolean Boolean.parseBoolean(String s)
) появился сразу после этого, что привело меня к поиску, чтобы выяснить, в чем заключались различия между этими двумя, так как они оба, казалось, делали то же самое.
Оказывается, что, чтоBoolean.getBoolean(String name)
на самом деле этопроверьте, существует лиSystem
свойство (!) данного имени и если его значениеtrue
, Я думаю, что это очень вводит в заблуждение, так как я определенно не ожидаю, что методBoolean
на самом деле звонитSystem.getProperty
и, просто взглянув на сигнатуру метода, он выглядит (по крайней мере, для меня), как будто он должен использоваться для анализаString
какboolean
, Несомненно, Javadoc ясно заявляет об этом, но я все еще думаю, что у метода есть вводящее в заблуждение название, и это не в правильном месте. Другие обертки примитивного типа, такие какInteger
Также есть аналогичный метод.
Кроме того, кажется, что это не очень полезный метод для включения в базовый API, так как я думаю, что не очень часто иметь что-то вроде-Darg=true
, Может быть, это хороший вопрос для интервью о позиции на Java: «Каковы результатыBoolean.getBoolean("true")
? ". Я считаю, что более подходящее место для этих методов будет вSystem
класс, например,getPropertyAsBoolean
; но опять же, я все еще думаю, что нет необходимости иметь эти методы в базовом API. Было бы разумно иметь их в чем-то вродеProperties
класс, где очень распространены такие преобразования.
Что вы думаете обо всем этом? Кроме того, если вам известен еще один «неуклюжий» метод, пожалуйста, опубликуйте его.
Нотабене Я знаю, что могу использоватьBoolean.valueOf
или жеBoolean.parseBoolean
преобразовать строковый литерал вboolean
, но я просто хочу обсудить дизайн API.