问题
In BlueJ, if I write a method that takes an array as a parameter, then when I want to test that method with a method call I have to enter the elements with curly braces, so:
{1,2,3}
How do I do a method call for an ArrayList
?
Here is my code:
import java.util.*;
public class Test2{
public static int[] toArray(ArrayList<Integer>a){
int len = a.size();
int []b = new int[len];
for(int i = 0; i<len; i++){
b[i] = a.get(i);
}
return b;
}
}
Now I want to test it in BlueJ, what should I type in the following dialog box?
回答1:
You need to create an instance of ArrayList
to pass to your method when you call it. With your project open in the main BlueJ window, click on the Tools menu, then on "Use Library Class...", then select java.util.ArrayList
from the Class menu. Also select the no-argument constructor from the list that appears, then click Ok.
BlueJ will then display another dialog asking you for a name for the instance and for a type parameter for the ArrayList
. Enter a name and Integer
for the type parameter.
After you click Ok, the new ArrayList
instance will appear in the object bench area at the bottom of the main BlueJ window.
When you right click on the new instance, BlueJ will display a menu of methods that can be called on it. Select the boolean add(Integer)
method a few times to add some values to the instance.
Finally, when you right click on your test class and call the toArray
method, you can enter the name of the ArrayList
instance to pass it as the argument to your method.
The results of the method call are displayed in a dialog.
Click the Inspect button to view the contents of the int
array returned from your method, or click the Get button to add it to the object bench.
回答2:
Arrays.asList("1", "2", "3");
Will return a List
and not a ArrayList
.
Your methods' parameters should always be the interface and not the implementation.
来源:https://stackoverflow.com/questions/16018998/how-do-i-enter-parameters-for-an-arraylist-in-bluej