args
является массивом String
, локальным для метода main
.
Итак, во-первых, это локальная переменная метода main
, и она не видна внутри метода calculate
которая объясняет первую ошибку: error: cannot find symbol
.
Во-вторых, calculate
ожидает параметр long
, а вы пытаетесь указать String
.Для этого вы получаете error: method calculate in class Test cannot be applied to given types;
Так что передайте args[0]
в calculate
после преобразования его в long
в качестве параметра.
public class Test
{
public static long calculate(long n)
{
return n;
}
public static void main(String[] args)
{
long answer = 0L;
try{
answer = calculate(Long.parseLong(args[0]));
}catch (ArrayIndexOutOfBoundsException ae){
ae.printStackTrace();
}catch (NumberFormatException nfe){
nfe.printStackTrace();
}
System.out.println(answer);
}
}