Image

Imagestiver_rus wrote in Imageru_java

Тип присваивания

Есть две функции:

public <T extends BigDecimal> void test(List<T> lst, T newobj) {
	BigDecimal oldobj;
	lst.add(oldobj = newobj);
}

и

public <T extends BigDecimal> void test(List<T> lst, T newobj) {
	BigDecimal oldobj;
	lst.add(newobj);
	oldobj = newobj;
}

Вторая компилируется (в Eclipse 3.4), первая нет - дает ошибку "The method add(T) in the type List is not applicable for the arguments (BigDecimal)". Подскажите пожалуйста, где такая ошибка прописана в Java Language Specification, сам что-то не соображу. Разве присваивание не обязано иметь тип и значение присваемого (т.е. правого) выражения?