使用 addMarker 方法

Doud with the addMarker method

我叫乔治,我在 android 工作室用 google 地图制作一个 android 应用程序,我有一个问题,我还是个初学者,所以我不知道不明白为什么您发送到方法 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);

仅此而已 - 语法糖。

现在 class 实现上述每个方法的方法链接将 return this 对象。因此,例如 position 方法(在 MarkerOptions 实现中)看起来像:

public MarkerOptions position(LatLng latLng) {
    // do something with latLng
    return this;
}

因此每个支持链接的方法都会 return 带有 this 关键字的当前实例。

至于语法就是一系列的对象方法调用,就像扩展版一样,但是是串联的。

由于 addMarker 接受一个 MarkerOptions 实例,该系列中的最后一个 snippet 方法满足签名,因为它 return 是一个 MarkerOptions

Builder Pattern 是一种通常使用方法链的单一设计。

方法链的一个限制是方法不能 return 除了实例引用之外的任何东西。