Статический импорт println()
Не понимаю, почему не работает такой импорт:
import static java.lang.System
Возникает ошибка.
Я хотел сделать импорт println удобным, чтобы не писать System.out...
Ответы (2 шт):
Статический импорт работает для доступа к статическим полям / методам, поэтому следует записать import static java.lang.System.*;, чтобы "сократить" написание System: out.println().
Методы print / println в классе PrintStream НЕ являются статическими, поэтому к ним статический импорт не применим.
Чтобы дополнительно сократить out.println, можно реализовать свой класс со статическими методами с краткими названиями, в которых будут вызываться соответствующие методы для System.out:
package my.util;
import static java.lang.System.*;
public class Out {
public static p(Object obj) {
out.println(obj);
}
public static f(String format, Object ... args) {
out.printf(format, args);
}
// ... и т.д.
}
Тогда можно импортировать статические методы уже из своего утилитарного класса:
import static my.util.Out.*;
import static java.util.Arrays.toString;
public class Main {
public static void main(String ... args) {
p("Hello World"); // Out.p -> System.out.println
f("My args %s%n", toString(args)); // Out.f -> System.out.printf
}
}
Создайте новый класс к примеру Helper с функциями которые должны упростить ввод
public class Helper {
public static void println(Object line) {
System.out.println(line);
}
}
в классе в котором вы хотите использовать println
import static package_example.Helper.println;
после этого вы можете использовать пример
public class Main {
public static void main(String[] args) {
println("");
}
}