java - 同一个类跑5次

标签 java

我用java代码编写了一个复杂的算法。但是,我想运行代码类 5 次,而不是自己做。我通过T2类调用T1类并将T1类循环5次。问题是 Java 保存代码的旧值并在下一个循环中使用它们。我的问题是如何在 T1 代码末尾每次使用新值(不使用零作为静态变量)运行 T1 类 5 次。这是我所做的一个简单示例: 封装测试;

public class T1 {
    public static int n, m, o, i, j;
    public static double T;
    public static int[][]  V = new int[100][100];
    public static int[]  C = new int [100];

    public static void main(String[] args){
        m=o+1; n=o+1; o=m+n;
        for(j = 0 ; j < n ; j++){
            for(i = 0 ; i < m ; i++){
                V[i][j] = i+j+o;
                System.out.print(V[i][j]+"   ");
            }           
                System.out.print("\n");
        }
        System.out.println("--------");
        for(j = 0 ; j < n ; j++){
            C[j] = j+o;
            System.out.print(C[j]+"   ");
        }
        System.out.println("\n--------");
        System.out.println("o = "+o);
        System.out.println("*******************************");
    }
}
<小时/>
package Test;

public class T2 {
    public static void main(String[] args) {
        for(int i =0 ; i <5 ; i++){
            T1.main(args);
        }
    }
}

这些代码的结果是:

2   
--------
2   
--------
o = 2
*******************************
6   7   8   
7   8   9   
8   9   10   
--------
6   7   8   
--------
o = 6
*******************************
14   15   16   17   18   19   20   
15   16   17   18   19   20   21   
16   17   18   19   20   21   22   
17   18   19   20   21   22   23   
18   19   20   21   22   23   24   
19   20   21   22   23   24   25   
20   21   22   23   24   25   26   
--------
14   15   16   17   18   19   20   
--------
o = 14
*******************************

虽然我希望它们如下(不在 T1 类末尾放置 o=0):

2   
--------
2   
--------
o = 2
*******************************
2   
--------
2   
--------
o = 2
*******************************
2   
--------
2   
--------
o = 2
*******************************

最佳答案

您将 T1 中的所有内容定义为 static,这意味着变量绑定(bind)到类而不是类的实例。您需要从字段和方法中删除所有static说明符,并在每次循环迭代中创建一个新实例。另外,不要将代码放在 main 中,而应放在非 staitc 的其他方法中。

for(int i =0 ; i <5 ; i++){
    new T1().process(args);
}

如果您需要保持所有变量静态,您可以引入一个 static reset() 方法,您可以将所有变量设置为其默认值(第一次调用之前的值)并调用该方法每次迭代后。

关于java - 同一个类跑5次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31831125/

相关文章:

java - JButton、JCheckBox 和类似的交互器在视觉上没有变化

java - 无法将 JSON 解析为 recyclerview

java - 如何在创建时绘制 JFrame?

java - Golang - gomobile 基本脚本编译错误

java - 如何解决使用 for 循环打印表格的 Java 问题?

java - Spring JDBCPreparedStatementCreator 无效的 Api 使用

java - 找不到 JDBC 驱动程序

java - 生成的 jhipster 项目出现错误

java - 要在 GWT 中使用 Gears WorkerPool,我是否必须用 Java 和 Javascript 编写相同的代码?

java - Spring Boot事务回滚