I have a POJO class Test that has Integer and String fields (all of them can be null). And I have javafx form with TextFields. To bind Test fields to text fields I use adapter. Now I create an instance of Test (all fields will be null) Test test=new Test(); TestAdapter adapter=newTestAdapter(test); //the following line works, although String name=null nameTextField.textProperty().bindBidirectional(adapter.getNameProperty()); //the following line throws exception Integer id=null idTextField.textProperty().bindBidirectional(adapter.getIdProperty(),newNumberStringConverter()); This is the exception I get: >Exception in thread "JavaFX Application Thread" java.lang.NullPointerException >at >javafx.beans.property.adapter.JavaBeanIntegerProperty.lambda$get$38(JavaBeanIntegerProperty.java:95) > at java.security.AccessController.doPrivileged(Native Method) at >javafx.beans.property.adapter.JavaBeanIntegerProperty.get(JavaBeanIntegerProperty.java:92) > at javafx.beans.binding.IntegerExpression.getValue(IntegerExpression.java:69) >at javafx.beans.binding.IntegerExpression.getValue(IntegerExpression.java:44) >at >com.sun.javafx.binding.BidirectionalBinding.bind(BidirectionalBinding.java:88) >at javafx.beans.binding.Bindings.bindBidirectional(Bindings.java:869) at >javafx.beans.property.StringProperty.bindBidirectional(StringProperty.java:111) Everything works ok if I do this way test.setId(0); idTextField.textProperty().bindBidirectional(adapter.getIdProperty(),newNumberStringConverter()); However, you can imagine how ugly this solution is - I loose all the abilities of null value and for my CRUD application it is death. Please, help me to understand how to work with Integer(and Others?) null values with bindings and adapters.
-- Александр Свиридов