Подробнее опиши проблему. Ты поставил на комп несколько версий джавы (зачем, если полная обратная совместимость?), потом запустил обновлятор не глядя, и все кроме последней версии удалились?
Это предположение, потому что я с твоих слово вообще нифига не понял.
Ты поставил на комп несколько версий джавы (зачем, если полная обратная совместимость?), потом запустил обновлятор не глядя, и все кроме последней версии удалились?
Я так понимаю, их установщик действует по принципу «оно всё совместимо, так что одной джавы хватит всем, и мы удаляем всё кроме актуальной версии». Проблему я тут вижу только в том, что он не предупреждает о наличии затираемой версии, как всё нормальные установщики.
Впрочем, это исключительно вендопроблемы, которые нормальных людей не касаются :3
На правах оффтопа - в чём заключается суть сравнения? Хочу попробовать наваять решение на разных языках.
XML схема для обоих документов одинаковая. Ноды не упорядочены, как и атрибуты как и дочерние ноды. Id есть у всех нод дочерних к Root node
Нужно выдать ноды отсутсвующих в первом, втором документе, ноды одинаковыми Id но с любыми отличиями на любом уровне вложенности. Точно не помню, но по моему у node с ID могут быть дочерние с атрибутами но глубже вложенность не идет.
На C# получение списка элементов с различающимися атрибутами будет выглядеть примерно так:
var xDoc1 = XDocument.Load("doc1.xml");
var xDoc2 = XDocument.Load("doc2.xml");
var y = from x1 in xDoc1.Root.Elements()
join x2 in xDoc2.Root.Elements() on x1.Attribute("Id").Value equals x2.Attribute("Id").Value
where !haveEqualAttributes(x1, x2)
select new { X1 = x1, X2 = x2 };
haveEqualAttributes нужно написать или вставить в linq выражение
Не шарп а его авторов, которые вместо фикса косяков жавы решили наделать своих.
Вы можете также как в Java сделать боксинг и хранить инт в объекте если нужно именно null
А что делать когда у меня из одного апи торчат List<int> а из другого List<int?>? Вместо того что б загнать результат вызова одного метода в другой надо на каждый чих конвертить одно в другое, вместо одного утилитного метода с параметром List<int?> приходиться добавлять ещё один для List<int>. И для чего было так делать, кто мешал разрешить запихивать null в простые типы? Ответ null-фобия.