这是我的问题。如果有人能帮助我,我非常感激。
SupportMapFragment mapFrag = getFragmentManager().findFragmentById(R.id.map))
要创建类的对象,我们必须实例化它。所以根据这段代码,它应该是
SupportMapFragment mapFrag = new SupportMapFragment();
然后我们必须致电
mapFrag.getFragmentManager().findFragmentById(R.id.map))
我可能错了。但我想知道如果没有新的关键词,这段代码是如何工作的。
答案 0 :(得分:4)
SupportMapFragment
正在getFragmentManager()
方法中实例化,并且引用返回给您。
必须看起来像这样:
SupportMapFragment getFragmentManager() {
return new SupportMapFragment();
}
答案 1 :(得分:4)
我相信你看到的是Factory method pattern的一个实例;
工厂方法允许API更准确地了解我们的类如何根据具体情况获得“产品”(或片段)。它可能很简单,
SupportMapFragment getFragmentManager() {
return new SupportMapFragment();
}
但是,我认为更有可能的是,它是Flyweight实施中使用的工厂(基于“片段”一词) -