protected Reader(Object lock) {
if (lock == null) {
throw new NullPointerException();
}
this.lock = lock;
}
Вот например кусок кода конструктора класса Reader. Правильно ли я понимаю, что он может использовать в качестве параметра любой обьект т.к. все обьекты в Java находтся в иерархии и наследуют от класса Object?
Да, это так. Ваше предположение верно.
Так как все объекты в Java наследуют класс Object, они могут быть неявно преобразованы к нему. Значения элементарных типов будут вначале упакованы, а затем преобразованы к Object. Например: int -> Integer -> Object.
Таким образом, в вашем примере конструктор класса Reader сможет получить ровно один аргумент любого типа.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей