首页
学习
活动
专区
圈层
工具
发布

Java类类
EN

Stack Overflow用户
提问于 2012-12-05 21:36:35
回答 3查看 115关注 0票数 0

我有一系列的类,如下所示:

代码语言:javascript
复制
private static final Class[] testerClasses={
    Tester1.class
};

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

代码语言:javascript
复制
intent =new Intent(this,testerClasses[0]);
startActivity(intent);

我想弄清楚怎么做下面的事,我真的很想弄清楚怎么做.

  1. 我需要从类的实例中调用函数。在大多数情况下,这些都是静态的或类似于静态的函数,因此仅仅获得函数的一个实例就足够了。
  2. 我需要确保我能够按照意图结构的要求通过这个类。

我为什么要这么做?有时我想像调用意图一样调用函数,而另一些时候,我只是想获取有关意图的数据,而不必调用它。我的abstractTester类(所有具体的测试人员类都继承自它)包含了一些东西,比如测试的名称,这在意图开始之前就已经很方便了。

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-05 22:55:03

正确的解决办法是:

代码语言:javascript
复制
private static final abstractTester[] testerClasses={
    new Tester1()
};

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

如果我需要参考这门课,我可以这么做。就像一种魅力!

票数 1
EN

Stack Overflow用户

发布于 2012-12-05 21:45:51

您将无法通过Intent传递类对象。相反,在意图中传递类名;接收方可以通过loadClass()获取类。

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

票数 1
EN

Stack Overflow用户

发布于 2012-12-05 21:51:10

嗨,你可以试着用下面的代码,

代码语言:javascript
复制
ArrayList<Class<?>> a = new ArrayList<Class<?>>();
a.add(MainActivity2.class);
a.add(MainActivity.class);

Intent intent =new Intent(this,a.get(0));
startActivity(intent);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13732921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档