Java语言基础

Java不可变类

2018-08-20  本文已影响13人  SHAN某人

1. 什么是不可变类?

可变类 不可变类
可变类的实例创建后可以改变其成员变量的值。 类的实例一旦创建后,不能改变其成员变量的值。

2. 如何创建不可变类?

2.1通过 Collections.unmodifiable*** 创建不可变类
 private  static  Map map = new HashMap<>();
    static {
        map.put("shan",1);
        map.put("li",1);
        map.put("zhang",1);
        map =  Collections.unmodifiableMap(map);
    }
2.2 通过 第三方包guava的 Immutable**** 创建不可变类
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>23.0</version>
        </dependency>
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
// 线程安全
public class ImmutableExample3 {

    private final static ImmutableList<Integer> list = ImmutableList.of(1, 2, 3);

    private final static ImmutableSet set = ImmutableSet.copyOf(list);

    private final static ImmutableMap<Integer, Integer> map = ImmutableMap.of(1, 2, 3, 4);

    private final static ImmutableMap<Integer, Integer> map2 = ImmutableMap.<Integer, Integer>builder()
            .put(1, 2).put(3, 4).put(5, 6).build();


    public static void main(String[] args) {
        System.out.println(map2.get(3));
    }
}

3. 如何设计不可变类?

待补充,待完善,待深入

上一篇下一篇

猜你喜欢

热点阅读