У меня есть вопрос о Apache Commons projects
. Мы знаем, что в Apache Commons Projects
доступно много хороших классов и методов. Но я думаю, что это связано с конкретной версией Java. Если я начну использовать проекты Apache Commons сейчас, когда Java обновится до версии 1.8, я должен убедиться, что проекты Apache Commons имеют аналогичное обновление, прежде чем обновляться до версии Java 1.8? Наличие некоторых сторонних библиотек — это хорошо, но я всегда беспокоюсь о совместимости между ними и основным языком программирования, который я использую.
Связаны ли проекты Apache Commons с версией Java?
Ответы (3)
В целом Java полностью обратно совместима, поэтому, если вы начнете использовать, например. commons-io в JSE1.6 будет работать и в JSE1.8. Работая с Java с 1999 года, я никогда не видел проблем с обратной совместимостью.
РЕДАКТИРОВАТЬ: Пока Oracle не изменит свою политику совместимости, у вас не должно возникнуть проблем. Если позже вы все равно столкнетесь с проблемами, у вас все еще есть исходный код, чтобы исправить это самостоятельно (но, возможно, вам придется вернуть его сообществу в зависимости от лицензии).
Проекты Apache Commons обновляются намного чаще, чем JDK. Я бы настоятельно рекомендовал держать ваши библиотеки в актуальном состоянии. Хотя бы для получения новейших исправлений. Это также позаботится о любых возможных проблемах с версиями JDK (которые обратно совместимы и очень мало изменились за эти годы и могут считаться довольно стабильными).
Но я думаю, что это связано с конкретной версией Java.
Единственный случай, когда я когда-либо видел, что это верно с Apache Commons, Jakarta Anything или Spring, был, когда одна версия использовала новые функции JVM и/или компилятора. Например, в Spring 2.5 было несколько jar-файлов для версии 1.5 и новее, что означает, что теоретически они будут работать на Java 5 и Java 8 без каких-либо ошибок, вызванных платформой. Вы просто не могли использовать их на виртуальной машине Java 3 или 4.
Это в значительной степени норма во всем сообществе Java, во всяком случае, для SE. Совместимость с JavaEE может быть нарушена, поскольку это вопрос совместимости библиотек и методологии разработки.