持有对象

java类型的变化

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()底层是固定大小数组,不可扩充的
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值