Немного менее подробный способ объявления названных перечислений:
object WeekDay extends Enumeration("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") {
type WeekDay = Value
val Sun, Mon, Tue, Wed, Thu, Fri, Sat = Value
}
WeekDay.valueOf("Wed") // returns Some(Wed)
WeekDay.Fri.toString // returns Fri
Конечно, проблема в том, что вам нужно будет сохранить порядок имен и валов в синхронизации, что проще сделать, если имя и val объявлены в одной строке.
Эта функция обеспечивает способность выполнить Java однофайловый исходный код непосредственно без любой компиляции, избегая утомительных шагов, которые включили ранее для выполнения просто простого привет мировая программа.
Java 11+ Launch Single-File Source-Code Programs
, Почему Вам нужно это, Если Вы вспоминаете былые времена незадолго до Java SE 11 (JDK 11), скажите, что у Вас есть исходный файл HelloUniverse.java, который содержит определение класса и статический основной метод, который распечатывает как одна строка текста к терминалу как следующее:
public class HelloUniverse{
public static void main(String[] args) {
System.out.println("Hello InfoQ Universe");
}
}
Обычно для выполнения этого класса, во-первых, необходимо было бы скомпилировать его с помощью компилятора Java (javac), который приведет к файлу HelloUniverse.class:
$ javac HelloUniverse.java
Then you would use a java virtual machine (interpreter) command to run the resulting class file:
$ java HelloUniverse
Hello InfoQ Universe
Это запускает JVM, загружает класс и выполняет код.
, Но что, если Вы хотите быстро протестировать часть кода и хотеть экспериментировать. Те два шага в процессе могут походить на небольшое количество тяжелого подъема. В Java SE 11, Вы получаете опцию запустить единственный файл исходного кода непосредственно без промежуточной компиляции.
Для ответа, почему эта ошибка дана имя класса для файла должно соответствовать файлу basename
.
, у Вас есть две опции иметь эту работу кода для традиционного javac
; java
последовательность:
Переименовывают класс к public class Hello
, или
Переименовывают hello.java
к myclass.java
.
java
интерпретатор для Java 11 не налагает это требование. Класс, который содержит main
, может иметь любое имя, пока это - первый класс в файле. Это было главным образом предназначено, чтобы упростить процесс обучения для новичков и позволить "сценарии Java" с хижиной ( касательно ).