Holder类的作用

很多框架和源码中都会有Holder这种类,主要作用就是让java中参数传递的时候可以保证引用改变。

例如:

public class Test {

    public static void main(String[] args) {
        User user = new User();
        user.name = "1111";
        change(user);
        System.out.println(user.name);
    }

    public static void change(User user){
        user = new User();
        user.name = "2222";
    }
}

class User{
    String name;
}

  我们执行后结果为1111

但是应用Holder类就不一样了

public class Test {

    public static void main(String[] args) {
        User user = new User();
        user.name = "1111";
        Holder<User> holder = new Holder<>();
        holder.setValue(user);
        change(holder);
        System.out.println(holder.getValue().name);
    }

    public static void change(Holder<User> holder){
        User user = new User();
        user.name = "2222";
        holder.setValue(user);
    }
}

class User{
    String name;
}

class Holder<T>{
    T value;

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

   执行结果为2222

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值