The answer depends on how you use the class...
If you want your class to be immutable, you'll have to use constructor parameters.
If you want your class to be deserializable by relection based (de)serializers, you will need a default constructor and setters.
If your class isn't supposed to be immutable and you want consumers to be able to change all the properties during the objects' lifetime, then you will need to add setters anyway (or add modification methods, which may seem less straightforward to consumers).
Also, consider if your class really should be one class:
If it has 30 parameters, you may be breaking the OO principle of encapsulation - where each class does one thing and does everything for that one thing.
Perhaps you should be using composition of a few classes or, if you have a lot of common parameters between classes, perhaps you need one or more vertical classes that handles a specific aspect and can act on multiple classes (either using reflection or using additional classes in a visitor pattern).