【问题标题】:I returned an array, but when I try to copy over that array NetBeans cannot find the symbol [duplicate]我返回了一个数组,但是当我尝试复制该数组时,NetBeans 找不到符号 [重复]
【发布时间】:2021-04-05 20:25:19
【问题描述】:

程序包16;

import java.util.Scanner;

/**
 *
 * @author buddysWorld
 */
public class Program16 
{
    public String[] myName(String firstName, String lastName) 
    {
      Scanner in = new Scanner(System.in);
      System.out.println("Enter your first name:");
      firstName = in.nextLine();
      System.out.println("Enter your last name:");
      lastName = in.nextLine();
      String fullNameFunc[]= {firstName, lastName};
      return fullNameFunc;
   }
   public static void main(String []args) 
   {
      String firstName = "";
      String lastName = "";
      String[] fullNameMain = fullNameFunc.clone();
      System.out.println("Your name is " + fullNameMain[0] + " " + fullNameMain[1]);
   }
}

这里 (String[] fullNameMain = fullNameFunc.clone();) 它说“找不到符号,变量 fullNameFunc,类 Program16” 我没有其他错误。

【问题讨论】:

  • fullNameFuncmyName 的本地。您可能希望在尚不存在的Program16 实例上使用调用 myName 的结果(或者您的意思是它是static,很难说)。

标签: java arrays methods


【解决方案1】:

您的变量 fullNameFunc 在方法 myName 中定义,这意味着它只能在其中定义,因为它是它的范围。

但是,由于变量 fullNameFunc 是方法 myName 的返回值,您可以替换

fullNameFunc.clone();

通过

myName(firstName, lastName).clone();

这是您代码的完整更正版本,我还重新定义了 firstNamelastName 的范围

public static String[] myName() {
    Scanner in = new Scanner(System.in);
    System.out.println("Enter your first name:");
    String firstName = in.nextLine();
    System.out.println("Enter your last name:");
    String lastName = in.nextLine();
    return new String[]{firstName, lastName};
}

public static void main(String[] args) {
    String[] fullNameMain = myName().clone();
    System.out.println("Your name is " + fullNameMain[0] + " " + fullNameMain[1]);
}

【讨论】:

    【解决方案2】:
    public class Program16 
    {
        public static String[] myName(String firstName, String lastName) 
        {
          Scanner in = new Scanner(System.in);
          System.out.println("Enter your first name:");
          firstName = in.nextLine();
          System.out.println("Enter your last name:");
          lastName = in.nextLine();
          String fullNameFunc[]= {firstName, lastName};
          return fullNameFunc;
       }
       public static void main(String []args) 
       {
          String firstName = "";
          String lastName = "";
          String[] fullNameFunc = myName(firstName, lastName);
          String[] fullNameMain = fullNameFunc.clone();
          System.out.println("Your name is " + fullNameMain[0] + " " + fullNameMain[1]);
       }
    }
    

    您需要将 myName() 方法设为静态。而您忘记添加“String[] fullNameFunc = myName(firstName, lastName);” main() 方法中的一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2019-08-21
      • 2023-04-09
      • 2012-08-27
      • 1970-01-01
      • 2019-10-29
      • 2019-02-01
      相关资源
      最近更新 更多