Main method that calls two method and passes result of calling first method over to second method

suppko :

I'm tasked to create a main method that calls two methods. The first method returns array of strings while the second method takes the array of strings and print out the element on separate lines. the main method then passes the result of calling the first method to the second and then halt. Am i doing it understanding the question correctly? When i compile and execute i get

sunshine
road
73
11

public class Hihihi
{

public static void main(String args[]) 
{
  method1();
  method2();//Will print the strings in the array that
            //was returned from the method1()
   System.exit(0); 
}                                 



public static String[] method1() 
{
     String[] xs = new String[] {"sunshine","road","73","11"};
     String[] test = new String[4];
     test[0]=xs[0];
     test[1]=xs[1];
     test[2]=xs[2];
     test[3]=xs[3];
     return test;
 }

   public static void  method2()
  { 
    String[] test = method1();
    for(String str : test)
        System.out.println(str); 
  } 
}
Stultuske :

At first, correct your method2

It has to be able to accept an array of String elements as parameter:

public static void  method2(String[] test)
  { 
    // this line is not needed -> String[] test = method1();
    for(String str : test)
        System.out.println(str); 
  } 

This way, you actually pass the data to the method, as your requirements described. A bonus is: it's re-usable for other String arrays as well.

Your method1 has got a lot of redundant code. Just filter that out

public static String[] method1() 
{
     return new String[] {"sunshine","road","73","11"};
}

and now, your main method, just to link them. Change

public static void main(String args[]) 
{
  method1();
  method2(); // this will now cause a compilation error, because it expects a parameter
   System.exit(0); 
} 

to:

public static void main(String args[]) 
{      
  method2(method1());
   System.exit(0); 
} 

The way your code was originally built, method1 was called two times, first in the main method, which was completely redundant, since the result wasn't used, second time in the method2, where it shouldn't be called, since the data should be passed as a parameter.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=86287&siteId=1