Вызов this.toString()
просто взорвется - он вызывает тот же метод рекурсивно, без выхода.
Причина, по которой вы не можете вызвать toString
напрямую на ipAddress
, заключается в том, что int
является примитивным типом, и вы не можете вызывать методы для примитивных типов.
Чтобы преобразовать что-либо в строку, используйте String.valueOf(ipAddress)
.В частности, для int
вы можете использовать Integer.toString(ipAddress)
.
Не совсем понятно, почему вы делаете преобразование в двоичную строку, хотя ... это не похоже нахорошая идея для меня.Любая причина, по которой вы не используете
ipAddress = (num1 << 24) | (num2 << 16) | (num3 << 8) | num4;
(при условии, что каждое значение действительно находится в диапазоне 0-255).
I сильно сомневаюсь, что двоичное представлениедействительно хотите, чтобы вы хотели, особенно учитывая отсутствие дополнения, и что вы пытаетесь затем проанализировать его как десятичное число.