如何在Java中使用static abstract class作为回调?

How to use static abstract class as a callback in Java?

我正在尝试弄清楚如何使用静态抽象 class 作为回调。我正在查看 Android 的文档 here and here。第一个 link 是一个 CameraManager,它有一个名为 openCamera 的方法。此方法需要静态抽象回调 class StateCallback 的实例。

我的主要问题是,静态 class 作为回调如何为我提供有用的信息?例如,我想做的是从 onOpened 回调中将 CameraDevice 存储在本地,但根据我对 C# 中静态成员的了解(我是 C# 开发人员),这是不可能的,因为静态成员无法访问非静态成员。

我一定不了解 Java... 或者这是 API 设计的预期结果?

提前致谢。

您需要扩展它并创建一个新的 class 来实现这些方法,并将其传递到调用中。因为 Java 都是引用,所以任何参数都可以传递一个派生自 class 的对象。

Java 中的静态 class 只是意味着它没有隐藏在其中的父对象的 link。它使 GC 更容易收集实例。 C# 中的 static!=Java 中的 static != C++ 中的 static != C 中的 static。哎呀,大多数语言中的 static 意味着不同的东西,具体取决于它的使用位置。