<< Chapter < Page | Chapter >> Page > |
Figure 7 - Answer 6. |
---|
Q06.java:56: error: method display in class Q06 cannot be applied
to given types;display(listC);
^required: ArrayList<? super Frame>found: ArrayList<JFrame>reason: actual argument ArrayList<JFrame>cannot be converted to
ArrayList<? super Frame>by method invocation conversion
1 error |
True. This program illustrates the use of a lower bounded wildcard to define a generic method thatwill accept an incoming reference to an object of a generic class where the parameter type for theobject is equal to or above the type of the wildcard in the inheritance hierarchy. The lowerbounded wildcard type for the display method is JFrame. Therefore, the display method willaccept references to ArrayList objects for parameter types JFrame, Frame, Window, Container,Component, or Object
False. This program illustrates the fact that a parameter of type Object is not the same as anunbounded wildcard parameter. The program refuses to compile and produces the errors shown in Figure 8 .
Figure 8 - Answer 4. |
---|
Q04.java:31: error: method display in class Q04 cannot be applied
to given types;display(listA);
^required: ArrayList<Object>found: ArrayList<Button>reason: actual argument ArrayList<Button>cannot be converted to
ArrayList<Object>by method invocation conversionQ04.java:40: error: method display in class Q04 cannot be applied
to given types;display(listB);
^required: ArrayList<Object>found: ArrayList<Label>reason: actual argument ArrayList<Label>cannot be converted to
ArrayList<Object>by method invocation conversion
2 errors |
True. This program illustrates two scenarios where an unbounded wildcard is a useful approach:
1. When you are writing a method that can be implemented using functionality provided in theObject class. The getClass method that is called in the displaymethod is defined in the Object class.
2. When the code in a generic method doesn't depend on the type parameter.An if-else statement along with specific casts is used in the display method to isolate the calls to the getText and getLabel methods from the type parameter.
True. This program illustrates the use of upper bounded wildcards. The method named display will acceptand process a reference to an ArrayList object whose element types are Component or any subclassof Component. Methods that are defined in or inherited into the Component class can be calledon the elements with no requirement for a cast. Methods that are not defined in or inherited into the Component class but are defined in the element classescan be called on the elements after casting to the element type.
False. This program will not compile. The method named display will only accept and process a reference to an ArrayList object whose element are oftype Component. ArrayList objects whose element types are subclasses of Component do not satisfy that requirement. An attempt to compile the programproduces the errors shown in Figure 9 .
Figure 9 - Answer 1. |
---|
Q01.java:34: error: method display in class Q01
cannot be applied to given types;display(listA);
^required: ArrayList<Component>found: ArrayList<Button>reason: actual argument ArrayList<Button>cannot be converted to
ArrayList<Component>by method invocation conversionQ01.java:43: error: method display in class Q01 cannot be applied
to given types;display(listB);
^required: ArrayList<Component>found: ArrayList<Label>reason: actual argument ArrayList<Label>cannot be converted to
ArrayList<Component>by method invocation conversion
2 errors |
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download aPDF file for this module at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, youshould be aware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version ofthe module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale onAmazon.com showing me as the author. I neither receive compensation for those sales nor do I know who does receive compensation. If youpurchase such a book, please be aware that it is a copy of a module that is freely available on cnx.org and that it was made andpublished without my prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?