Java类类

时间:2012-12-05 21:36:35

标签: java android

我有一个Classes数组,如下所示:

private static final Class[] testerClasses={
    Tester1.class
};

我需要它像这样,所以我可以启动Android意图,像这样:

intent =new Intent(this,testerClasses[0]);
startActivity(intent);

我正在试图弄清楚如何做以下事情,我真的很想弄明白该怎么做......

  1. 我需要从类的实例调用函数。在大多数情况下,这些是静态或静态的函数,所以仅获取函数的实例就足够了。
  2. 我需要确保我可以按照Intent结构的要求传递类。
  3. 为什么我要这样做?有时候我想把这个函数称为一个intent,有时候我只想获取有关intent的数据,而不必调用它。我的abstractTester类(其中所有具体的测试器类都继承自)包含一些类似测试名称的内容,这在Intent甚至开始之前很方便。

    感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

您将无法使用Intent传递类对象。相反,在intent中传递类名;接收者可以通过loadClass()

获得课程

一旦接收者拥有了类对象,它就可以使用反射来调用预期的方法。

答案 1 :(得分:1)

正确的解决方案是:

private static final abstractTester[] testerClasses={
    new Tester1()
};

intent =new Intent(this,testerClasses[0].getClass());
startActivity(intent);

然后,如果我需要引用该类,我可以这样做。像魅力一样工作!

答案 2 :(得分:0)

您好,您可以尝试使用以下代码,

ArrayList<Class<?>> a = new ArrayList<Class<?>>();
a.add(MainActivity2.class);
a.add(MainActivity.class);

Intent intent =new Intent(this,a.get(0));
startActivity(intent);