我试图找出如何使用静态抽象类作为回调。我正在查看Android的文档here和here。第一个链接是CameraManager,它有一个名为openCamera的方法。此方法需要静态抽象回调类StateCallback的实例。
我的主要问题是,作为回调的静态类如何为我提供任何有用的东西?例如,我想要做的是从onOpened回调本地存储CameraDevice,但是根据我对C#中静态成员的了解(我是C#dev),这是不可能的,因为静态成员无法访问非静态成员。
我不能理解Java的某些内容......或者这是API设计的预期结果?
提前致谢。
答案 0 :(得分:3)
您需要扩展它并创建一个实现这些方法的新类,并将其传递给调用。因为Java是所有引用,所以任何参数都可以传递给从该类派生的对象。
Java中的静态类也意味着它没有隐藏在其中的父对象的链接。它使GC更容易收集实例。静态在C#!=静态在Java中!=静态在C ++中!=静态在C中。大多数语言中的staic意味着不同的东西取决于它的使用位置。