rt,代码逻辑大概是这样:
public class MyFactoryBean implements FactoryBean<MyBean> {
private String myProperty;
public void setMyProperty(String myProperty) {
this.myProperty = myProperty;
}
@Override
public MyBean getObject() throws Exception {
return createBean();
}
public MyBean createBean(){
MyBean myBean = new MyBean();
myBean.setProperty(myProperty);
//下面 UserListener 调试时,UserListener 对象的类型是“MyFactoryBean$$Lambda$400/0x0000000800e9b558@4225”
UserListener<User1> userListener=new UserListener<User1>(){
@Override
public void active(){
//doSomething
}
};
Cache.addUserListener(userListener);
return myBean;
}
@Override
public Class<?> getObjectType() {
return MyBean.class;
}
@Override
public boolean isSingleton() {
return true;
}
}
- 在传递
UserListener时,发现传递的不是 UserListener 实例的具体类型(UserListener 是一个泛型接口),而是一个
MyFactoryBean$$Lambda$400/0x0000000800e9b558@4225
代理对象,请问有什么方式能直接得到该类具体的类型吗?除了把对象类型一并传过去
Cache.addUserListener(userListener,User1.class);
- ps: 😅哈哈,框架还不是很熟,大家尽管吐槽指正,谢谢大家回复!


