tôi đã xác định giao diệnmùa xuân 4 không thể thực thi Java 8 phương pháp mặc định
public interface MyInterface {
default void setOrder(int a){ }
default int getOrder(){return 123;}
}
và thực hiện
public class MyInterfaceImpl implements MyInterface {}
Trong file cấu hình mùa xuân của tôi, tôi đã xác định sau đậu:
<bean id="a" class="my.package.MyInterfaceImpl">
<property name="order" value="999"/>
</bean>
Khi Tôi tạo bối cảnh mùa xuân tôi nhận được lỗi sau:
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'order' of bean class [my.package.MyInterfaceImpl]: Bean property 'order' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Tôi đang sử dụng spring in version 4.1.6.RELEASE. Vì vậy, câu hỏi của tôi là tại sao nó không thể thực thi phương thức setOrder là phương thức mặc định từ giao diện MyInterface? Có vẻ như mùa xuân hoàn toàn bỏ qua các phương pháp như vậy.
Tôi chỉ có thể đoán, nhưng có thể mùa xuân kiểm tra các phương pháp bằng cách đặt một giá trị và sau đó lấy lại giá trị giả định getter trả về giá trị đã đặt trước đó. Trong ví dụ của bạn, điều này sẽ không thành công. Hãy thử gán cho một trường hoặc ghi đè lên trường đó để kiểm tra điều này. –
Hãy thử thay đổi ' ' thành ' ' làm getter mặc định của bạn trả về '123'không '999 '. –