我开发移动应用程序(Android、J2ME),想知道以下步骤是否可行:
- 假设应用程序必须在支持 J2ME 的平台上运行
- 该平台包含一些特定于平台的 API,例如诺基亚手机上的 NokiaUI。 API 中包含的一些类实现的接口(interface)也包含在 API 中。
- 平台制造商为 API 提供完整的 javadoc,以及模拟器和类路径库。 API 中包含的所有接口(interface)定义都是已知的,因为它们存在于 javadoc 中。
- 创建一个新的 J2ME 项目,并且不包含特定于平台的可选包,因此无法从包中导入。
- 从平台特定的 API 中选择随机接口(interface)(例如 SomeInterface),并在项目内创建其准确的定义。接口(interface)包的命名必须与所选接口(interface)包的名称完全相同。
假设接口(interface)定义为:
public interface SomeInterface { public void someMethod(); }
选择一个实现该接口(interface)的类,并使用 newInstance() 方法实例化它。
- 将实例化对象转换为 SomeInterface。
- 在接口(interface)上调用 someMethod()。
这一切都可能吗,否则在强制转换时会出现 ClassCastException 吗?
最佳答案
某些手机(例如诺基亚 Symbian)上的 Midp 安装程序不会安装具有与平台类相同的包和类名的类的应用程序。
如果您尝试这样做以在不同平台之间创建兼容性,那么您只需要创建应用程序的两个版本,其中一个版本提供您自己的类版本,另一个版本从平台使用它们。
如果您的目的是覆盖在 midp 上不可能的平台类。
关于java - 是否可以创建一个与 Java 中特定隐藏 api 接口(interface)兼容的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380339/