我叫George,我正在用谷歌地图在安卓工作室制作一个安卓应用程序,我有一个问题,我还是一个初学者,所以我不明白为什么你发送到方法addmarker的数据有构造函数方法和其他方法,这个方法链意味着什么?为什么它们与点联合并发送到addmarker方法?谢谢你的帮助,如果需要详细解释,你可以帮我说出我要学习的课程或主题:(我找到了我引用的代码部分
mMap.addMarker(new MarkerOptions().position(posicion).title("Primer posicion").snippet("Hora de llegada: " + hora1));
您使用的chain
术语是一个很好的术语,因为它被称为method chaining
(或更具体地说是method cascading
(,它只是在一个语句中而不是一系列语句中调用对象(MarkerOptions
实例(上的一系列方法的一种方式。(这不是Java独有的。(
这里有一个没有链接的等价物:
MarkerOptions mo = new MarkerOptions().
mo.position(posicion);
mo.title("Primer posicion");
mo.snippet("Hora de llegad: " + hora1);
mMap.addMarker(mo);
仅此而已——句法糖。
现在,对于实现方法链接的类,上面的每个方法都将返回this
对象。例如,position
方法(在MarkerOptions
实现中(看起来像:
public MarkerOptions position(LatLng latLng) {
// do something with latLng
return this;
}
因此,每个支持链接的方法都会返回带有this
关键字的当前实例。
至于语法,它只是一系列对象方法调用,就像扩展版本一样,而是串行的。
由于addMarker
接受MarkerOptions
实例,因此该系列中最后的snippet
方法满足签名,因为它返回MarkerOptions
。
生成器模式是一种通常使用方法链接的设计。
方法链接的一个限制是方法不能返回任何东西,只能返回实例引用。