加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

反射与注入依赖问题

发布时间:2020-12-13 22:13:33 所属栏目:百科 来源:网络整理
导读:问题: intereface接口文件并未定义成员变量,通过接口的一个方法set一个成员作为接口实现类型的内部成员变量, 调用接口实现类型的其他方法,并未能感知到该成员的存在(或者说是并未能得到正确的成员,??也可能是因为并发多线程所致的错误??)。 interface U

问题:

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);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读