You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@dubbo.apache.org by Aaron <lz...@163.com> on 2019/01/07 03:00:18 UTC

AbstractConfig中的toString()方法反射调用getter是否妥帖

AbstractConfig类的toString()方法,为了输出显示,会反射调用getter方法。
而纯粹的getter方法当然没有问题,可AbstractConfig的实现类ReferenceBean继承了
Spring的FactoryBean接口,其方法getObject并不是纯粹的getter,其含有初始化逻辑。
虽然有initialized的字段用来防止重复初始化,但个人感觉这样仍有存疑,给调试工作也带来了一些意外。
个人建议,即使是为了日志、调试等显示工作,在referenceBean的输出中,加上一个obect:proxy$xxxx的字段也并不能提供
些许有效信息,所以建议,toString中可以显示忽略掉getObject()方法

Re: AbstractConfig中的toString()方法反射调用getter是否妥帖

Posted by 田 小波 <ti...@outlook.com>.
Hi,

This problem has been fixed in pull request #2759<https://github.com/apache/incubator-dubbo/pull/2759>

在 2019年1月7日,上午11:00,Aaron <lz...@163.com>> 写道:

AbstractConfig类的toString()方法,为了输出显示,会反射调用getter方法。
而纯粹的getter方法当然没有问题,可AbstractConfig的实现类ReferenceBean继承了
Spring的FactoryBean接口,其方法getObject并不是纯粹的getter,其含有初始化逻辑。
虽然有initialized的字段用来防止重复初始化,但个人感觉这样仍有存疑,给调试工作也带来了一些意外。
个人建议,即使是为了日志、调试等显示工作,在referenceBean的输出中,加上一个obect:proxy$xxxx的字段也并不能提供
些许有效信息,所以建议,toString中可以显示忽略掉getObject()方法