#java #file #warnings
#java #файл #предупреждения
Вопрос:
Используя createNewFile
метод и метод удаления File
класса, я успешно генерирую файлы из своей программы. Но после процесса компиляции появляется раздражающее предупреждающее сообщение. Мой вопрос в том, как я могу удалить эти предупреждающие сообщения без использования @SUPPRESSWARNIGN
. Потому что, когда я проверяю свой код, я вижу возможные предупреждения об ошибках, которые вызваны этими 2 методами. Да, с помощью @SuppressWarning
предупреждений и возможных сообщений об ошибках исчезают.
Я не знаю, связано ли это с версией Java, но в любом случае я использую Java 8. Я провел исследование этой проблемы, ничего не смог найти в Интернете. Я видел, как люди в Интернете использовали эти 2 метода так же, как и я. Может быть, они проигнорировали предупреждающие сообщения. Но я этого не хочу.
Вот мой код :
private void createAFile() throws IOException {
String outputFileName = getFileName();
String outputPathName = getFilePath();
String fullOutputPath = outputPathName "/" outputFileName;
output = new File(fullOutputPath);
if(output.exists()){
output.delete(); //this returns a boolean variable.
}
output.createNewFile(); //this also return a boolean variable.
}
Предупреждения :
Предупреждение: (79, 20) Результат ‘File.delete ()’ игнорируется. Предупреждение: (84, 16) Результат ‘File.createNewFile ()’ игнорируется.
Спасибо
Комментарии:
1. Было бы действительно полезно, если бы вы сказали, что это за предупреждения.
2. Я не вижу никаких предупреждений с этим кодом в Java 8.
3. Предупреждение: (79, 20) Результат ‘File.delete ()’ игнорируется. И предупреждение: (84, 16) Результат ‘File.createNewFile ()’ игнорируется
Ответ №1:
Если вы хотите избежать этих сообщений, вы можете обеспечить ведение журнала для случая, когда эти методы возвращают false.
Что-то вроде этого
private static Logger LOG = Logger.getLogger("myClassName");
// some code
if (!output.delete()) {
LOG.info("Cannot delete file: " output);
}
Комментарии:
1. спасибо за идею журнала 🙂 прямо сейчас не могу проголосовать, извините за это.
Ответ №2:
Они выглядят как предупреждения, сгенерированные с помощью инструмента проверки кода. Что бы я сделал, так это :
boolean deleted,created; // both should be instantiatd to false by default
if(output.exists()){
deleted = output.delete(); //this returns a boolean variable.
}
if(deleted){
created = output.createNewFile();
}
if(!deleted||!created){
// log some type of warning here or even throw an exception
}
Комментарии:
1. спасибо 🙂 Поскольку я новичок в Stackoverflow, я не могу проголосовать за ваш ответ. Но я голосую за ваш ответ «абстрактно».