Здравствуйте, eao197, Вы писали:
E>E>class Demo {
E> static public void main( String[] args )
E> {
E> StringBuffer buf = findAppropriateBuffer();
E> for( int i = 0; i != args.length; ++i )
E> buf.append( args[ i ] );
E> System.out.println( buf );
E> }
E> static private StringBuffer findAppropriateBuffer()
E> {
E> return null;
E> }
E>}
E>
И что? buf явно проинициализирован. Тот, кто не прочитал спецификацию на возвращаемое значение — сам дурак.
Этот код точно так-же пишется на С/С++, только он выкинет не exception, а core dump.
E>ЗЫ Теперь понятно, почему тебе SymADE&SOP так понравился... ты просто не писал никогда сложных программ, не участвовал в сложных проектах.
В SymADE для отслеживания нулевых указателей и гарантии, что не будет NullPointerException нужно всего-то написать плагин к компилятору, что делается одним человеком за пару месяцев (и наверняка будет написан уже до того, как большинству он понадобится). В Java для этого нужно менять синтаксис языка (JSR-308), и переписывать все средства программирования, от javac до Eclipse. Это займёт несколько лет минимум, и будет сделано не так, как нужно для конкретных проектов — как и произошло с assert, enum, generic types.