Arrays.asList type conversion issue
I'm studying the book Thinking in java piece of code is as follows: My
question is why no type conversion exception the new Light() and new
Heavy() is Power type
List snow4 = Arrays.asList(new Light(), new Heavy());
package com.yanbit.collection.basic;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Snow {
}
class Powder extends Snow {
}
class Crusty extends Snow {
}
class Stush extends Snow {
}
class Light extends Powder{}
class Heavy extends Powder {
}
public class AsListInference {
public static void main(String[] args) {
// swith list<Snow>
List<Snow> snow1 = Arrays.asList(new Powder(), new Crusty(),
new Stush());
// List<Snow> snow2 = Arrays.asList(new Light(), new Heavy());
// type list<power>
List<Snow> snow3=new ArrayList<Snow>();
Collections.addAll(snow3, new Light(), new Heavy());// implict type
List<Snow> snow4 = Arrays.<Snow> asList(new Light(), new Heavy());
}
}
No comments:
Post a Comment