Слегка кастомный instanceof

Jan 28, 2016 12:40

Даже не знаю, нужны ли здесь комментарии. Java.

Object obj = list.next();
try {
fileName = (String) obj;
} catch (Exception e) {
File file = (File) obj;
fileName = file.getAbsolutePath();
}

Leave a comment

Comments 8

display_none January 28 2016, 11:59:22 UTC
предлагаю поддержать fallback

Object obj = list.next();
try {
fileName = (String) obj;
} catch (Exception e) {
try {
File file = (File)obj;
fileName = file.getAbsolutePath();
}catch (Exception e1) {
try {
fileName = obj.toString();
}catch (NullPointerException e2) {
fileName = "ну извините";
}
}
}

Reply

redis January 28 2016, 12:07:56 UTC
Вот да! Хороший, правильный стиль :)

Reply

n1919 January 28 2016, 13:45:44 UTC
и прога хакается созданием файла с именем "ну извините" ???

Reply

display_none January 28 2016, 13:48:55 UTC
))))))То есть Вы хотите сказать что дальше там есть такой код:

if (fileName.equals("ну извините")) {
///
}

шикарно

Reply


dark_barker January 28 2016, 12:27:26 UTC
Ну тут стрёмный несколько для java код, конечно, но если учитывать традиции других платформ, то не сказать что прям уж wtf)

Reply

redis January 28 2016, 12:52:51 UTC
Ну, в общем да, обычное воплощение ужасной идеи. Но, с другой стороны - пока что WTF года и уж точно WTF января :)

Reply

display_none January 28 2016, 13:43:40 UTC
Если бы там была цепочка инстансофов то это был бы обычный код-с-запашком, и можно было бы говорить о традициях.

А вот ловля ClassCastException, а уж тем более посредством ловли обычных Exception ни в какой платформе не приветствуется)

Reply


109 January 28 2016, 20:21:04 UTC
миллионы индусов даже не поймут, в чём тут wtf. и это страшно.

Reply


Leave a comment

Up