【问题标题】:How to use static abstract class as a callback in Java?如何在 Java 中使用静态抽象类作为回调?
【发布时间】:2015-05-14 00:36:15
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 那个类是静态的。你的课不需要。

标签: java android static callback abstract


【解决方案1】:

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

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

【讨论】:

  • 好的,有道理。知道他们为什么不只使用界面吗?
  • 他们有一个或多个函数的默认实现,不希望你重写或复制它?
猜你喜欢
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 2011-06-21
  • 1970-01-01
  • 2015-07-08
相关资源
最近更新 更多