Вы можете предоставить статический метод для инициализации вашей статической переменной:
public static final String startingPath = initPath();
private static String initPath() {
try {
return new File(".").getCanonicalPath();
} catch (IOException e) {
throw new RuntimeException("Got I/O exception during initialization", e);
}
}
Или вы можете инициализировать вашу переменную в статическом блоке:
public static final String startingPath;
static {
try {
startingPath = new File(".").getCanonicalPath();
} catch (IOException e) {
throw new RuntimeException("Got I/O exception during initialization", e);
}
}
РЕДАКТИРОВАТЬ : В этом случае ваша переменная static
, поэтому нет способа объявить выброшенное исключение. Для справки: если переменная не static
, вы можете сделать это, объявив исключение в конструкторе, например:
public class PathHandler {
private final String thePath = new File(".").getCanonicalPath();
public PathHandler() throws IOException {
// other initialization
}