×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.





Hi James,

Take a look at "Going wild with generics, Part 2", especially "The get-put principle" at:

http://www.ibm.com/developerworks/library/j-jtp07018.html?ca=dgr-lnxw16javagenerics2&S_TACT=105AGX59&S_CMP=GR

HTH,


Joe Sam

Joe Sam Shirah - http://www.conceptgo.com
conceptGO - Consulting/Development/Outsourcing
Java Filter Forum: http://www.ibm.com/developerworks/java/
Just the JDBC FAQs: http://www.jguru.com/faq/JDBC
Going International? http://www.jguru.com/faq/I18N
Que Java400? http://www.jguru.com/faq/Java400

----- Original Message ----- From: "James Perkins" <jrperkinsjr@xxxxxxxxx>
To: "Java Programming on and around the iSeries / AS400" <java400-l@xxxxxxxxxxxx>
Sent: Tuesday, January 13, 2009 7:17 PM
Subject: Interface Setter with List Generics


Hello All,
There may be some posts or other information out there but for whatever
reason I can't seem to find it. This is the closet I got, but did not find a
real answer.
http://forums.sun.com/thread.jspa?threadID=5142452

I have an interface for Orders and OrderLines. The Orders interface has a
method like so:
public void setOrderLines(List<? extends OrderLine> orderLines);

I was getting compile errors when attempting to compile the a CustomerOrder
class that implements the Order interface. The setOrderLines() method I
expected to be able to override as such:

public void setOrderLines(List<CustomerOrderLine> customerOrderLines) {
for (Iterator<CustomerOrderLine> iterator = customerOrderLines
.iterator(); iterator.hasNext();) {
CustomerOrderLine customerOrderLine = iterator.next();
this.customerOrderLines.put(customerOrderLine.getLineNumber(),
customerOrderLine);
}
}

But I ended up with this:
@SuppressWarnings("unchecked")
public void setOrderLines(List<? extends OrderLine> customerOrderLines)
{
for (Iterator<CustomerOrderLine> iterator =
(Iterator<CustomerOrderLine>) customerOrderLines
.iterator(); iterator.hasNext();) {
CustomerOrderLine customerOrderLine = iterator.next();
this.customerOrderLines.put(customerOrderLine.getLineNumber(),
customerOrderLine);
}
}

Am I doing something wrong? The getter method that returns a List I was able
to implement as expected.

Just thought one of you Java experts might have some insight for me.

Thanks in advance,
James R. Perkins




This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.