反射与注入依赖问题

前端之家收集整理的这篇文章主要介绍了反射与注入依赖问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

问题:

intereface接口文件并未定义成员变量,通过接口的一个方法set一个成员作为接口实现类型的内部成员变量,

调用接口实现类型的其他方法,并未能感知到该成员的存在(或者说是并未能得到正确的成员,??也可能是因为并发多线程所致的错误??)。

interface UserAction{
void setUser(User mUser);
void UserSpeakName();
}

public void UserActionImp implement UserAction{
       User  mUser;

    public void setUser(User user){
         mUser=user;
    }

    public void UserSpeakName(){
         System.out.println("username:"+mUser.Name);
    }
}


分析:

接口实现类型的实例是通过反射创建的,通过接口文件并没有能反应出该成员的存在,所以在并发下发生设置的内部成员发生变化,不能获取到正确的值(mUser)。


解决方法

调用接口时直接设置该成员:

interface UserAction{
void UserSpeakName(User mUser);
}

public void UserActionImp implement UserAction{       

    public void UserSpeakName(User mUser){
         System.out.println("username:"+mUser.Name);
    }
}

猜你在找的设计模式相关文章