java类型的变化
下面是注意Arrays的用法
package holding;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Snow{}
class Power extends Snow{}
class Light extends Power{}
class Heavy extends Power{}
class Crusty extends Snow{}
class Slush extends Snow{}
/**
* 主要是Arrays.asList的用法值得注意,以及:在用它时,继承只管上一级,除非像snow4 一样,显式地告诉编译器,Snow类型是我的目标类型
* @author fireliuwei
*
*/
public class AsListInterface {
public static void main(String[] args) {
Snow snow = new Heavy();
List<Snow> snow1 = Arrays.asList(new Crusty(),new Slush(),new Power());
//下面这句话不能编译,原因如上
//List<Snow> snow2 = Arrays.asList(new Light(),new Heavy());
//snow3,snow4能编译,原因如上,
List<Snow> snow3 = new ArrayList<Snow>();
//Collections.addAll,参数snow3告诉了编译器,目标类型是snow
Collections.addAll(snow3, new Light(),new Heavy());
List<Snow> snow4 = Arrays.<Snow>asList(new Light(), new Heavy());
}
}
下面是注意Arrays的用法
package holding;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class AddingGroups {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5));
Integer[] moreInts = { 6, 7, 8, 9, 10 };
collection.addAll(Arrays.asList(moreInts));
Collections.addAll(collection, 11, 12, 13, 14, 15);
Collections.addAll(collection, moreInts);
@SuppressWarnings("unused")
List<Integer> list = Arrays.asList(16, 17, 18, 19, 20);
list.set(1, 99);
//list.add(21);运行出错,因为Arrays.asList()底层是固定大小数组,不可扩充的
}
}