java - 是否可以创建一个与 Java 中特定隐藏 api 接口(interface)兼容的接口(interface)?

标签 java android inheritance interface java-me

我开发移动应用程序(Android、J2ME),想知道以下步骤是否可行:

  1. 假设应用程序必须在支持 J2ME 的平台上运行
  2. 该平台包含一些特定于平台的 API,例如诺基亚手机上的 NokiaUI。 API 中包含的一些类实现的接口(interface)也包含在 API 中。
  3. 平台制造商为 API 提供完整的 javadoc,以及模拟器和类路径库。 API 中包含的所有接口(interface)定义都是已知的,因为它们存在于 javadoc 中。
  4. 创建一个新的 J2ME 项目,并且不包含特定于平台的可选包,因此无法从包中导入。
  5. 从平台特定的 API 中选择随机接口(interface)(例如 SomeInterface),并在项目内创建其准确的定义。接口(interface)包的命名必须与所选接口(interface)包的名称完全相同。
  6. 假设接口(interface)定义为:

    public interface SomeInterface
    {
        public void someMethod();
    }
    
  7. 选择一个实现该接口(interface)的类,并使用 newInstance() 方法实例化它。

  8. 将实例化对象转换为 SomeInterface。
  9. 在接口(interface)上调用 someMethod()。

这一切都可能吗,否则在强制转换时会出现 ClassCastException 吗?

最佳答案

某些手机(例如诺基亚 Symbian)上的 Midp 安装程序不会安装具有与平台类相同的包和类名的类的应用程序。

如果您尝试这样做以在不同平台之间创建兼容性,那么您只需要创建应用程序的两个版本,其中一个版本提供您自己的类版本,另一个版本从平台使用它们。

如果您的目的是覆盖在 midp 上不可能的平台类。

关于java - 是否可以创建一个与 Java 中特定隐藏 api 接口(interface)兼容的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380339/

相关文章:

java - 还记得在 parse.com android 上的用户登录吗?

c++:多态+多重继承顺序。继承顺序重要吗?

java - RadioGroup 监听器显示错误

java - 在 Java 中什么是可调用的?

java - 在 Android 上获取可用的蓝牙设备列表

android - 如何从适配器中消除 DialogFragment?

java - 从父类(super class)型的扩展列表中返回子类型对象的列表

c++ - C++中的向下转换继承

java - 为什么我会收到 InvalidDnDOOperationException?

java - 为什么有人会强制转换而不是返回子类型