2015-03-17 3 views
1

Можно ли изменить функции, присущие java-функции, без изменения файлов? Например, я хотел бы изменить java.util.Arrays.toString(), чтобы вывести ошибку, если она используется для чего-либо, кроме массива 1D, для удобства. Это возможно?Изменение встроенных функций Java

Извините, если это было задано раньше, не удалось найти его в Google. Благодарю.

+1

@JNYRanger: Это статический метод ... –

+2

Почему метод 'toString()' helper _ever_ генерирует исключение? Это похоже на крайне недружелюбное поведение. –

+1

@JonSkeet Touche. – JNYRanger

ответ

6

Нет, вы не можете этого сделать. Я предлагаю вам написать свой собственный отдельный класс, учитывая, что вам нужна другая функциональность.

Очевидно Java позволяет переопределить неконечное экземпляру методов в классах, но даже тогда клиенты должны знать, чтобы создать экземпляр подкласса ... и ограничение набора входов, что метод может принимать в любом случае, является изменением. И, видя, что это статический метод, в первую очередь ... в основном, обычные механизмы пользовательского поведения не помогут вам.

+0

Конечно, есть всегда исполняемый байт-код. Но изменение классов библиотеки Java - это не то, что нужно делать в первую очередь, независимо от того, как это делается. –

Смежные вопросы