Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
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 ");
}
}
}
Выполнение этого на кодовой базе, я продолжаю работать, было разоблачением, которое я могу сказать Вам!
#!/usr/bin/perl
# usage: git ls-tree -r HEAD | $PROGRAM_NAME
use strict;
use warnings;
my $sha1_path = {};
while (my $line = <STDIN>) {
chomp $line;
if ($line =~ m{ \A \d+ \s+ \w+ \s+ (\w+) \s+ (\S+) \z }xms) {
my $sha1 = $1;
my $path = $2;
push @{$sha1_path->{$sha1}}, $path;
}
}
foreach my $sha1 (keys %$sha1_path) {
if (scalar @{$sha1_path->{$sha1}} > 1) {
foreach my $path (@{$sha1_path->{$sha1}}) {
print "$sha1 $path\n";
}
print '-' x 40, "\n";
}
}
Ответы сценариев от Вашего связанного вопроса в значительной степени применяются здесь также.
Попытка следующая команда мерзавца от корня Вашего репозитория мерзавца.
git ls-tree -r HEAD
Это генерирует рекурсивный список всех 'блобов' в текущей ГОЛОВЕ, включая их путь и их sha1 идентификатор.
мерзавец не поддерживает обратные каналы от блоба до дерева, таким образом, это была бы задача сценариев (жемчуг, Python?), чтобы проанализировать git ls-tree -r
вывод и создать сводный отчет всех sha1s, которые появляются несколько раз в списке.
Только что создал однострочник, который выделяет дубликаты, отображаемые с помощью git ls-tree
.
Может быть полезно
git ls-tree -r HEAD |
sort -t ' ' -k 3 |
perl -ne '$1 && / $1\t/ && print "\e[0;31m" ; / ([0-9a-f]{40})\t/; print "$_\e[0m"'