Дано:
List<Node> nodelist = new ArrayList<Node>();
Object toAdd = new Object();
тогда:
((List) nodelist).add(toAdd);
или
((List<Object>) nodelist).add(toAdd);
сделает хак. Ик. Я чувствую себя грязным Но вы не должны этого делать. Если вам действительно нужно смешивать типы, сделайте следующее:
List<Object> mixedList = new ArrayList<Object>(list);
mixedList.add(toAdd);
Это решение, по крайней мере, укажет другим, что они должны остерегаться того, что любой подкласс Object может быть в списке.