Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Рискуя тем, чтобы походить на фаната Perl, я все еще взволнован Perl 6 и чувствую, что конечный результат будет релевантен, когда он будет выпущен. Прошлые девять месяцев привели к некоторым хорошим достижениям на передней стороне Попугая () и даже привели к некоторым значительным пожертвованиям, чтобы помочь финансировать увеличенную разработку.
От недавнего сообщения в блоге:
Rakudo в настоящее время поддерживает массивы, хеши, классы, объекты, наследование, роли, типы исчисления, типы подмножества, ролевой состав, отправка мультиметода, вводит проверку, основной ввод-вывод, названный регулярными выражениями, грамматиками, дополнительными параметрами, названными параметрами, slurpy параметры, закрытия, умное соответствие, соединения и много других функций, ожидаемых от Perl 6.
Бдительно следите за Rakudo.org (Rakudo является названием реализации Perl 6, созданной сверху Попугая) для новостей о продолжающемся процессе разработки Perl 6.
Perl 6 проходит приятно. Perl 6 немного непохож на предыдущий Perl в том Perl 6, на самом деле спецификация языка не реализация его. Ссылочная реализация сверху Попугая, который является основной тягой проекта Perl 6, была переименована в Rakudo и проходит приятно. Лучшим местом, которое я нашел для новостей об этом, является http://planetsix.perl.org/. В настоящее время, насколько я понимаю это, большинство важных опций языка реализовано, и они излагают в деталях остальных и пишут тесты. Можно загрузить его и проверить его немного. Самый легкий путь, кажется, cygwin версия, которая была укутана и превращена в cygwin пакет.
Существует теперь дорожная карта для попугая, по крайней мере.
Существует также веб-сайт, который отслеживает количество тестов, которые проходит реализация Rakudo.
(источник: rakudo.de)
Perl 5 продолжит быть замечательным и доступным, даже если Шесть никогда не осуществится. Шесть поддержанных Perl 5 и Perl 5 продолжают испытывать много замечательных новых вещей, таких как Американский лось.
Я думаю, что Perl 6 будет завершен однажды и будет хорош, но на данный момент, я - пятеричник, и я счастлив как этот.
Вы не должны забывать, что Perl 5 разрабатывается параллельно. 5.10 отсутствовал не так давно с новыми возможностями и дополнениями к языку.
Достижения по Perl 6 являются медленными, но устойчивыми, МОПСЫ (Perl 6 по Haskell) был остановлен некоторое время, но Audrey могла бы возобновить workingon он скоро. В среднем, в то время как Rakudo (Perl 6 по попугаю) прогрессирует хорошо. Вот сообщение, детализирующее различный прогресс реализаций
Реалистично я не задержал бы дыхание для него, но неважно как поздно это будет, я думаю, когда это выйдет, это все еще будет релевантно.
Посмотрите Официальный Perl 6 Wiki для нахождения последней информации:
http://www.perlfoundation.org/perl6/index.cgi?perl_6
Последние заголовки из 2 ведущих блогов Perl 6 показывают у основания официальной домашней страницы Perl 6 wiki.
Существует большая другая полезная информация и ссылки там.
Например, недавний Perl 6 статей и презентации:
http://www.perlfoundation.org/perl6/index.cgi?perl_6_articles_and_presentations
У Попугая VM для динамических языков (чтобы использоваться Rakudo/Perl 6) также есть официальная Wiki:
http://www.perlfoundation.org/parrot/index.cgi?parrot
Попугай многоязычен, таким образом, Perl 6 сможет назвать модули записанными на других языках Попугая, и другие языки Попугая смогут назвать Perl 6 модулями скомпилированный в Попугая.
В отличие от Perl 5, который определяется его ссылочной реализацией, Perl 6 определяется его набором тестов. Таким образом, в конечном счете будут другие версии Perl 6, которые не работают на Попугае VM.
Perl 5 все еще развивается. Perl 5.10 был основным недавним выпуском, который (среди многих других улучшений) также имел некоторых, Perl 6 связал функции. Perl 5.12 находится в процессе активного развития (как Perl 5.11).
Perl 5.12 будет иметь поддержку вызова (и того, чтобы быть названным) Perl 6. Perl 6 должен смочь скомпилировать значительное большинство кода Perl 5 - это - главный приоритет.
Посмотрите Официальный Perl 5 Wiki для нахождения последней информации:
Perl 6 развивается медленно, но постоянно. Larry Wall записал Синтаксический анализатор, который может проанализировать весь Perl 6, который мы знаем (который является в основном набором тестов плюс немного другого кода). Rakudo, который является Perl 6 на Попугае, также работает приятно. Можно отследить его прогресс набора тестов с диаграммами на rakudo.de
Обратите внимание, что это - радикально новый язык, и не тривиальное для реализации. Я не ожидаю применимой версии перед следующим годом, и даже затем потребуется некоторое время для любой реализации для становления столь сформировавшимся, как Perl 5 сегодня (который имел 20 лет для разработки стабильной кодовой базы).
Я чувствую, что некоторые хорошие вещи могут прибыть из Perl 6 (например, попугай), но я не рассчитываю на когда-либо выполнение ничего с языком.
В группе разработки биоинформатики, где я работаю, мы поощряем использование Python для новой разработки, где Perl был бы предпочтительным языком в прошлом. Python, кажется, предоставляет лучший путь вперед нам.
Медленный и поздний. Это имеет терминальный случай второй системной болезни. Когда я был хакером Perl (назад в день), они работали над Perl 6 в течение двух лет. Это было 6 лет назад. Вы могли создать целую операционную систему в то время.
Существует много видимых progess. цветных сообщений минуты от еженедельного Попугая/Perl 6 конференц-вызовов Use.perl и rakudo.org каждую неделю, можно прочитать журнал Jonathan Worthington, или журнал Patrick Michaud или различный Perl 6 списков рассылки. Как Mortiz указывает, Вы видите ежедневное состояние набора тестов.
Последние разработки включают завершение Larry Wall работы для определения полной грамматики, разработчики Rakudo, добавляющие поддержку перед скомпилированным модулем и многоуровневую работу отправки Jonathan.
Конечно, легко следовать за прогрессом, но Вы, вероятно, уже знали, что могли легко использовать Google для обнаружения ("perl6, прогресс" приводит к хорошим ресурсам). Возможно, у Вас был другой вопрос, хотя, или просто хотят ударить вложенное множество шершня?
Способность предназначаться для других языков попугаю vm, сделает это тривиальным для создания использования продукта, чем когда-либо языки Вы довольны.
Список языков с недавним действием, или по крайней мере протестированный с последним попугаем (с 22.09.2008):
взятый от languages/LANGUAGES_STATUS.pod
Это будет отсутствовать к Рождеству.;-) Я услышал на подкастах, что там будет некоторая альфа перед этим Рождеством. Они были явными об этом, но это было некоторое время, так как я слышал это.
На комментарий, что он не запускался до 2005 года ... Я полагаю, это зависит от того, считаете ли вы Parrot Perl6. Первоначальная команда сделала это, но мы долгие годы не получали поддержки от специалистов по языку Perl6.
Мы реально работали над Parrot в 2000–2004 годах, и большая часть задела VM была там. К 2002 году у нас были продолжения, совместные подпрограммы, JIT, промежуточный компилятор и дюжина языков помимо Perl6, включая интерпретатор BASIC, написанный на Parrot PIR. К тому времени мы могли компилировать и запускать практически любой язык в мире, за исключением языков с высокой степенью параллелизма, и наши возможности намного превосходили потребности Perl6 для платформы реализации.
Сама ВМ была способна годами. Perl6 как язык - это совсем другая история, поскольку его очень сложно разбирать. Это никак не отразится на Parrot. Это просто отражение культуры Perl, и именно поэтому рост других языков сценариев ускорился, а Perl5 находится в упадке, и люди, которые однажды выбрали Perl5 для реализации новых систем, перешли на Ruby, Python и Groovy, а также на такие языки, как Java и C # развил фреймворки, которые интенсивно используют отражение для диспетчеризации среды выполнения.
Как бы я ни любил Perl, если язык настолько сложен для реализации, что компилятор промышленного качества не может быть написан менее чем за десять лет, значит, что-то не так! C ++ легче анализировать, и он был реализован за время, меньшее, чем Per6. Это должно нам кое-что сказать.Дерек Джонс пишет в своем блоге «Форма кода», что C ++, возможно, стал «слишком большим, чтобы провалиться» ( http://shape-of-code.coding-guidelines.com/2008/12/c-goes -for-too-big-to-fail / ). C ++ может себе это позволить, поскольку он добился успеха прежде, чем стал большим. Perl6 может быть «слишком большим, чтобы когда-либо добиться успеха», потому что масштаб был настолько грандиозным, что у проекта возникли проблемы с удержанием участников из-за того факта, что период внимания типичного участника, вероятно, составляет 2-3 года, а не 10.
{{ 1}}