我读了一篇有关如何在真实应用程序中使用Android Architecture组件的博客文章,标题为Using Navigation Architecture Component in a large banking app
但是在如何从ViewModels导航?]部分中,有一件事我不理解。命令定义如下:
sealed class NavigationCommand { data class To(val directions: NavDirections): NavigationCommand() object Back: NavigationCommand() data class BackTo(val destinationId: Int): NavigationCommand() object ToRoot: NavigationCommand() }
我对此一无所知,在
NavigationCommand
内部,它实际上再次像在NavigationCommand
中一样使用data class To(val directions: NavDirections): NavigationCommand()
-难道这不会无限递归吗?另外,使用object
中的object Back: NavigationCommand()
是什么意思?
[我读了一篇有关如何在实际应用程序中使用Android体系结构组件的文章,标题为在大型银行应用程序中使用导航体系结构组件。在如何从...中导航这一节]]
它实际上使用了NavigationCommand
该代码以Kotlin语言编写。它使用sealed
类定义所有命令。要了解有关sealed
类的更多信息,请使用此link
NavigationCommand
,然后定义从To
扩展的内部类NavigationCommand
。在定义的NavigationCommand()
类中调用To
与调用超级构造函数相同。例如,对于Java中的To
类,可以这样写: