如何从其他方法访问主方法内的数组或变量?

Posted

技术标签:

【中文标题】如何从其他方法访问主方法内的数组或变量?【英文标题】:How to access array or variable inside main method from other method? 【发布时间】:2014-11-29 19:22:01 【问题描述】:

所以一开始我在 main 方法中编写了代码,我想将它分成几个 void 方法以使其整洁。但这是我的问题,我在 main 方法中声明的一些变量,而不是实例变量。如何解决?

public static void main(String[] args)

    String[] allcars = args;

    String[] car1 = allCars[0].split("(?!^)");
    String[] car2 = allCars[1].split("(?!^)");

    String[] tire = car1[0], car2[0];
    String[] color = car1[1], car2[1];

public static void myMethod()
    for (int i = 0; i <= tire.length-2; i++)
        for (int j = i+1; j < tire.length; j++)
            if ((tire[i]).equals(tire[j]))
                value += 2;
            
        
    

它给我错误轮胎无法解析为变量

【问题讨论】:

请标记您想要的编程语言。 如果是 Java,我敢肯定你不能这样做——至少局部变量是这样工作的。不过,您几乎没有选择 - 比如将这些变量作为参数传递给您的其他方法,或者当然,如您所说,将它们声明为实例/类变量。 是的,它是 java。所以如果我想使用那个变量,我需要将参数传递给我的方法吗?我不能将它声明为实例变量,因为在我得到轮胎 [] 数组 之前,主方法中有很多计算和函数 【参考方案1】:

函数参数用于此类事情。看个例子

public static void myMethod(String[] tire);

public static void main(String[] args)

    String[] allcars = args;

    String[] car1 = allCars[0].split("(?!^)");
    String[] car2 = allCars[1].split("(?!^)");

    String[] tire = car1[0], car2[0];
    String[] color = car1[1], car2[1];

    myMethod(tire);

顺便说一句,您的代码有语法错误 - 您忘记关闭 main 功能块大括号。

【讨论】:

以上是关于如何从其他方法访问主方法内的数组或变量?的主要内容,如果未能解决你的问题,请参考以下文章

每天一题PHP中常用的数组操作方法笔记整理

如何使用正则表达式或任何其他方法在 PL/SQL 中提取单引号内的字符串 [重复]

我们如何从 SwiftUI 中的其他结构中读取 @State 变量?

MFC中静态成员函数调用其他类的非静态变量

如何在其他方法中访问类属性变量[重复]

java ThreadLocal