Изменение типа основного параметра - PullRequest
3 голосов
/ 13 января 2012

В настоящее время я работаю над школьным проектом в Eclipse (мы только начали его использовать), и мы столкнулись с небольшой проблемой: поскольку раньше мы использовали BlueJ, у нас не было никакого основного метода, мы добавили его, но выполнилив проблему.

Мы должны отправить значение Int в параметре вместо String [] с аргументами, мы попробовали public static void main (Int [] args) Это приводит к следующей ошибке:

Ошибка: Основной метод не найден в классе Tester, определите основной метод как: public static void main (String [] args)

Мне интересно, что нам следует делатьсделать / изменить, чтобы заставить это работать.

Ответы [ 11 ]

7 голосов
/ 13 января 2012

Загляните в Integer.parseInt("123"),
см http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29

Надеюсь, ты разберешься с остальными :)

3 голосов
/ 13 января 2012

Как уже говорили другие, вы не можете изменить сигнатуру метода main. Для получения целого числа из параметров String используйте:

public static void main(String[] args) {
    int first = Integer.parseInt(args[0]); // use whatever index you need
}
3 голосов
/ 13 января 2012

Java будет искать public static void main(String[] args).
Вам нужно будет передать целочисленное значение в виде строки и проанализировать его.

Вот ссылка на документацию для Integer.parseInt(String).

2 голосов
/ 13 января 2012

Вам нужно передать значение в виде строки, а затем проанализировать его как целое число.

Посмотрите этот образец кода:

public static void main(String[] args) throws Exception {
    int value = Integer.parseInt(args[0]);
    System.out.println("My int value: " + value);
}

Вам нужно защитить parseInt с помощью try catch для управления ошибками, если параметр не разбирается.

2 голосов
/ 13 января 2012

Попробуйте отправить целое число в массив String.

new String[]{"1"}

Затем извлеките его:

Integer yourInteger = Integer.valueOf(args[0])
2 голосов
/ 13 января 2012

Как и в сообщении об ошибке, основной метод, который будет вызываться при выполнении класса, должен иметь подпись public static void main(String[] args).Вы не можете просто дать ему другие аргументы.

Если вы передадите числа в качестве аргументов в командной строке, они будут считываться Java как строкиЕсли вы хотите преобразовать их в числовой тип, вы должны сделать это явно в своем коде.

1 голос
/ 13 января 2012

Этот класс будет выводить целые числа, которые вы вводите в командной строке:

public class IntegersFromCommandLine
{
    public static void main(String[] args)
    {
        for (int i = 0; i < args.length; i++)
        {
            System.out.println(Integer.parseInt(args[i]));
        }
    }
}

Если вы передадите ему аргументы командной строки 1324 21 458 9564 1 0 -789 40 , он выдаст следующий вывод:

1324
21
458
9564
1
0
-789
40
1 голос
/ 13 января 2012

Вы должны оставить основной метод следующим образом:

public static void main(String[] args){
    //....
}

Поскольку вы указываете ошибку.Теперь в методе main можно изменить тип аргументов на целые.

public static void main(String[] args){
    int arg0=Integer.parseInt(args[0]);
    int arg1=Integer.parseInt(args[1]);
    //... etc.
}

С уважением!

1 голос
/ 13 января 2012

напишите основной метод, как показано ниже

public static void main(String[] args){

}.

и используйте Integer.parseInt(str)

1 голос
/ 13 января 2012

Просто передайте строку, а затем используйте Integer.parseInt(string), чтобы получить целое число, которое вам нужно.

...