java - 如何运行另一个类的方法?

标签 java android methods helper stack-overflow

我按照其他问题的说明进行操作,但我的应用程序崩溃了。因此,我的一项 Activity 大约有 2,000 行代码。我想创建另一个仅保存代码的类,然后特定 Activity 运行另一个代码保存类中的方法,只是为了组织。

这是我尝试过的示例,但它不起作用。 Activity A:

public class ActivityA extends Activity {

ActivityB test= new ActivityB();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

  testing();

    }

public void testing() {
      test.codeTest();
}    

然后这是辅助类。 Activity B:

public class ActivityB extends ActivityA{

    public void codeTest() {    
    //2,000 lines of code
    }

然后应用程序崩溃了。我究竟做错了什么? :/我也尝试过:

public class ActivityA extends Activity {

ActivityB test= new ActivityB();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

  test.codeTest();

}

我什至在这方面寻求帮助都觉得自己像个白痴>。<

我得到的错误是:

java.lang.StackOverflowError.

错误行是:

public class ActivityA extends Activity {

public class ActivityB extends ActivityA{

最后一行错误代码是

ActivityB test= new ActivityB();

我做错了什么? :/

最佳答案

您问的是一个有效的问题。我认为我不知道你的代码崩溃的原因。但请考虑一下:

A将包含B,B将有A,其中包含B,其中将有A,其中将包含B.. ..

这可能是堆栈溢出的根源。如果您单步执行代码,程序会在什么时候崩溃?

此外,如果您使用静态函数创建静态类,也许可以做得很好。

  public static class myUtility {


   public static void someFunction() { . . .}





 }

编辑: 盯着你的代码几分钟后,我可能已经明白你想要做什么。让我试一下:

假设您希望“脏”代码位于 B 中。将 B 声明为抽象:

public abstract class ActivityB extends Activity {
 . . . 

}

然后对于你的A类,

public class ActivityA extends Activity implements ActivityB {

}

这就是你想要“实现”的目标吗?

关于java - 如何运行另一个类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852558/

相关文章:

java - Java 接口(interface)中的可选方法

java - 无法使用 Files.walkFileTree java nio 打印目录内的子目录

android - 启用 Dexguard 时,Crashlytics 的堆栈跟踪将文件名显示为未知来源

java - java GUI中动态添加和排序复选框

java - 将 mariaDB 客户端与 MySQL 数据库集成的问题

r - `as.matrix` 和 `as.data.frame` S3 方法与 S4 方法

java - 创建一个根据用户字符串输入返回整数的方法

java - 如何将文本打印到文本区域

Android 将数据保存到应用程序

android - 如何在另一个自定义 View 中添加自定义 View ?