Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
public class Main {
public static void main(String[] args) {
f0();//this is call of f0() from line 4
f0();//this is call of f0() from line 4
}
public static void f0(){
System.out.println("hi, I am f0");
Exception e = new Exception();
if(e.getStackTrace()[1].getLineNumber()==3){
f1();
} else if(e.getStackTrace()[1].getLineNumber()==4){
f2();
}
}
public static void f1(){
System.out.println("hi, I am f1");
}
public static void f2(){
System.out.println("hi, I am f2");
}
}
вот кусочек, который выполняется по разному в зависимости от того с какой строчки в исходном коде он вызван. Сам сочинил.
>Представляю какое удивление ждет аффтара, если класс будет скомпилирован без отладочной информации 🙂
Спешу вас уверить, что информация о номерах строк и названиях файлов исходного кода доступны во время выполнения вне зависимости компилировалась ли программа с или без отлад. информации. Отлад информация лиш добавляет в байт код сведения о названиях локальных переменных.
//this is call of f0() from line 3
>>Сам сочинил.
Мо - ло - дец!
>Представляю какое удивление ждет аффтара, если класс будет скомпилирован без отладочной информации 🙂
Спешу вас уверить, что информация о номерах строк и названиях файлов исходного кода доступны во время выполнения вне зависимости компилировалась ли программа с или без отлад. информации. Отлад информация лиш добавляет в байт код сведения о названиях локальных переменных.
А кто задумается над прикладным смыслом использования информации о номере строки - тому и пирожок не грех дать.