J2ME上检测是否支持特定的API

本文介绍如何利用Java的Class对象来检测特定API是否可用。通过三种方法获取Class对象,并提供了判定Class对象存在性的两种方式,同时给出了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是很久前另一个BLOG上的,现在不用了。转过来吧,方便查看...

 

也许熟悉Class类的朋友早就知道如何使用了,这里我只是做了一下总结,帮助有需要的朋友。

一开始这个问题是群里的一个朋友提出来的,我也不会,搜了很久才摸透了,下面就来说说,也当作资料备份(^-^)。

 

理论基础:

    每个类都有一个相应的java.lang.Class对象。每个类的Class对象存储于编译后的类所在的文件中。所以,当JVM装载一个.class文件时就会装载一个Class对象。

 

思路:

     判定是否支持特定API,只要检测API中(所包含的特定的)类的Class对象是否存在。

 

步骤:

1.获得类的Class对象。

2.判断Class对象是否存在。

 

1.获得类的Class对象

  这有3个途径可以获得,分别是:

  1)Object.getClass();

  2)classname.class(如javax.microedition.lcdui.Canvas.class);

  3)Class.forName(classname)(如Class.forName(java.lang.String));

 

  我们的目的是判断是否支持特定的API,显然不可能事先得到对象实例,第1个方法不能用。第2和第3个方法都是可行的。

 

2.判断Class对象是否存在

  对于第2种方法,判断获得的Class是否为null;

  对于第3中方法,如果不存在会抛出ClassNotFoundException。

 

一个判断是否支持NOKIA API的例子:

方法2:

... ...

if(com.nokia.mid.ui.FullCanvas .class !=null ? true : false)

    System.out.println("支持");
else

    System.out.println("不支持");

... ...

 

方法3:

public static boolean test(String classname) {
    try {

         Class.forName(classname.trim());
         return true;

    } catch (ClassNotFoundException e) {

         return false;

    }

}

... ...

if(test("com.nokia.mid.ui.FullCanvas "))

    System.out.println("支持");

else

    System.out.println("不支持"); 

... ...

 

这里再附上两个相关的连接,可供参考:

测试手机支持哪些J2ME类:

http://www.myspaces.cn/userhly/archive/2008/09/11/28790.aspx

手机支持的java协议检测工具:

http://mobile.72pines.com/2008/07/28/%E6%89%8B%E6%9C%BA%E6%94%AF%E6%8C%81%E7%9A%84java%E5%8D%8F%E8%AE%AE%E6%A3%80%E6%B5%8B%E5%B7%A5%E5%85%B7/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值