Several ways to do it. You will have to consider whether you want to permit any changes to those fields. You should also consider whether it is wise to have so many parameters for your constructor; for one thing it makes the code hard to read, and I had to insert some line breaks.That is one way to do it. You can set up lots of methods for different combinations.
In that case they all have the structure Address a = getBasicAddress(...); ... return a;
The getBasicAddress method requires postCode and town be not null, and other null fields are changed to "", so there are no nulls.
You can do validation of the fields in those methods, eg with a regex for post codes.