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: 哈哈,框架还不是很熟,大家尽管吐槽指正,谢谢大家回复!



