大佬教程收集整理的这篇文章主要介绍了android – 修改参数的void getter,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public void getSize(Point outSizE) { synchronized (this) { updateDisplayInfoLocked(); mDisplayInfo.getAppMetrics(mTempMetrics,mCompatibilityInfo); outSize.x = mTempMetrics.widthPixels; outSize.y = mTempMetrics.heightPixels; } }
只是想知道 – 是什么让这篇文章的作者以这种方式实现它? (为什么它修改参数而不是返回新对象?Get-methods通常是哑的,有返回值,不修改参数.我错了吗?)
我能从头脑中获得的唯一理由是 – 效率.此方法的用户可以控制创建的Point对象的数量.但设计这样的API是一个好习惯吗?
UPD:
我会像这样实现它(或类似的smth):
public Point getSize() { Point outSize = new Point(); synchronized (this) { updateDisplayInfoLocked(); mDisplayInfo.getAppMetrics(mTempMetrics,mCompatibilityInfo); outSize.x = mTempMetrics.widthPixels; outSize.y = mTempMetrics.heightPixels; } return outSize; }
像getSize()这样的方法的问题是你真的想要返回一个原语.如果getSize()返回一个int,这将不是问题.在这种情况下,将参数传递给方法以用作“输出参数”是很常见的.
在J2ME中我们一直都是这样做的.特别是对于返回x / y坐标.在这种情况下,您有2个不会导致对象创建的选项:
>创建2个方法:int getX()和int getY()OR
>创建一个将X和Y坐标写入传递参数的方法,如下所示:void getXY(int [] coords)
在第二种方法中,调用者分配一次int [2]数组(可能是静态的),然后可以使用相同的数组再次调用getXY()方法来传递坐标.
以上是大佬教程为你收集整理的android – 修改参数的void getter全部内容,希望文章能够帮你解决android – 修改参数的void getter所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。