this
является ссылкой на текущий объект. Он используется в конструкторе для различения локальной и текущей переменных класса, имеющих одно и то же имя. например ::
public class circle {
int x;
circle(int x){
this.x =x;
//class variable =local variable
}
}
this
также может использоваться для вызова одного конструктора из другого конструктора. например:
public class circle {
int x;
circle() {
this(1);
}
circle(int x) {
this.x = x;
}
}
Проверьте их:
Или самокрутка:
Например, это - то, как Вы используете commons-cli
проанализировать 2 аргумента строки:
import org.apache.commons.cli.*;
public class Main {
public static void main(String[] args) throws Exception {
Options options = new Options();
Option input = new Option("i", "input", true, "input file path");
input.setRequired(true);
options.addOption(input);
Option output = new Option("o", "output", true, "output file");
output.setRequired(true);
options.addOption(output);
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
CommandLine cmd;
try {
cmd = parser.parse(options, args);
} catch (ParseException e) {
System.out.println(e.getMessage());
formatter.printHelp("utility-name", options);
System.exit(1);
}
String inputFilePath = cmd.getOptionValue("input");
String outputFilePath = cmd.getOptionValue("output");
System.out.println(inputFilePath);
System.out.println(outputFilePath);
}
}
использование из командной строки:
$> java -jar target/my-utility.jar -i asd
Missing required option: o
usage: utility-name
-i,--input <arg> input file path
-o,--output <arg> output file
Если Вы знакомы с гну getopt, существует порт Java в: http://www.urbanophile.com/arenn/hacking/download.htm .
, кажется, существуют некоторые классы, которые делают это:
Возможно, эти
комплект парсинга параметра командной строки JArgs для Java - этот крошечный проект предоставляет удобный, компактный, предварительно упакованный и всесторонне зарегистрированный пакет синтаксических анализаторов параметра командной строки для использования программистов Java. Первоначально, анализируя совместимый со стилем GNU 'getopt' обеспечивается.
ritopt, Окончательный Синтаксический анализатор Опций для Java - Хотя, несколько стандартов параметра командной строки были предварительно изложены, ritopt следует соглашениям, предписанным в выбирать пакете.
Yeap.
я думаю, что Вы ищете что-то вроде этого: http://commons.apache.org/cli
библиотека Apache Commons CLI обеспечивает API для обработки интерфейсов командной строки.
Смотрите на проект Commons CLI, много хорошего материала там.
Кто-то указал на меня на args4j в последнее время, который является базирующейся аннотацией. Мне действительно нравится он!
Я использовал JOpt и нашел его довольно удобным: http://jopt-simple.sourceforge.net/
первая полоса также предоставляет список приблизительно 8 дополнительных библиотек, проверьте их и выберите того что большинство исков Ваши потребности.
Вы могли бы найти эту метастатью несчастья интересной как стартовая точка:
http://furiouspurpose.blogspot.com/2008/07/command-line-parsing-libraries-for-java.html
Взгляните на более свежий JCommander .
Я создал это. Я буду рад получить вопросы или пожелания.