For that matter, why not parameterize the setter as well?
On Jan 24, 2011, at 5:17 PM, Greg Brown wrote:
> Parameterizing the getter is definitely a valid option - possibly better than
> returning List<Object>, since it may help catch more errors at compile time.
>
> G
>
> On Jan 24, 2011, at 5:07 PM, calathus wrote:
>
>> In order to avoid this compiler error issue, we may choose an approach to
>> use generic type for method level.
>> see the following code. Although from type safety perspective, there are
>> quite strange things involved here..
>> Originally I considered to use super(e.g, <? super I>) for anonymous type,
>> but looks like Java does support this syntax in quite restricted place.
>>
>>
>> ----------------
>>
>> public class Main {
>>
>> static class A {
>> List<?> ts;
>> public List<?> getList() {
>> return ts;
>> }
>> public void setList(List<?> ts) {
>> this.ts = ts;
>> }
>> }
>> interface I {
>> String getName();
>> }
>> static class B {
>> List<? extends I> ts;
>> public <T> List<T> getList() {
>> return (List<T>)ts;
>> }
>> public void setList(List<? extends I> ts) {
>> this.ts = ts;
>> }
>> }
>>
>> class J implements I {
>> String name;
>> public String getName() {
>> return name;
>> }
>> public void setName(String name) {
>> this.name = name;
>> }
>> }
>>
>> public static void main(String[] args) {
>> {
>> A a = new A();
>> a.setList(new ArrayList<Integer>());
>> List<Object> list = (List<Object>)a.getList();
>> //List<Object> list = a.getList(); // error
>> }
>> {
>> B b = new B();
>> b.setList(new ArrayList<J>());
>> List<I> list1 = b.getList();
>> List<J> list2 = b.getList();
>> List<Object> list3 = b.getList(); // OK
>> b.getList().add(new Integer(4));
>> }
>> }
>>
>> }
>>
>>
>> On Mon, Jan 24, 2011 at 12:45 PM, Greg Brown <[email protected]> wrote:
>> > Another thought, ListView should not implement List interface? basically
>> > a ListView/TableView are lists with an extra graphics support.
>>
>> No, ListView and TableView are views on the model data provided by a List.
>>
>> G
>>
>>
>>
>>
>>
>> --
>> Cheers,
>> calathus
>>
>>
>>
>