Я программист на C # и пытаюсь взломать Java-проект. Вот анонимная выдержка из нашего производственного кода. Это работает (я думаю). Обратите внимание, что - это весь класс.
public class Y extends X
{
public Z m_Z;
protected void readCustomData (CustomStream reader, boolean forUpdate)
throws IOException, FTGException
{
super.readCustomData (reader, forUpdate) ;
m_Z.readBinaryData (reader, forUpdate) ;
}
protected void writeCustomData (CustomStream writer, int original)
throws IOException, FTGException
{
super.writeCustomData (writer, original) ;
m_Z.writeBinaryData (writer, original) ;
}
}
Что меня озадачивает - где инициализируется m_Z
? Я не могу найти его во всей кодовой базе. Так почему же методы readCustomData
и writeCustomData
не работают с NullReferenceException
- или что-то подобное в Java? m_Z
как-то автоматически конструируется вместе с Y
? Или я что-то пропустил, и в кодовой базе есть какая-то более глубокая магия, которая его инициализирует?