I'm trying to understand how to read (i.e., how to translate from geek speak to English) the overwhelming and detailed Java API as I'm learning how to code. Regarding this method I copied from the API:
static String showInputDialog(Object message)
Shows a question-message dialog requesting input from the user.
In "English", this method is a class static method that returns a String type and the method's argument is the class's field message? So how does "Object" come into play here? I understand Object is the root class (of all classes) but I don't understand its relationship to "message" because isn't message a field for J.OptionPane class?
The message is of type object because it doesn't have to be a String. You can pass a String which will be shown as all Strings below each other, and even complete Components like JTextField, JButton, JPanel, etc.
Although the actual supported Object types are not clearly documented, a little investigation showed that the following are allowed:
- Component: the component will be added
- Icon: a text-less label with the icon will be added
- Object: all elements of the array are added using the same code, so the Object can contain Component, Icon, Object, etc
- anything else will be converted into a String which is added as a label