Gerenciamento de Preferências

Não consigo decidor qual o melhor modo de guardar preferências do usuário no sistema:

  • A API de preferências do Java não suporta outros objetos, só primitivos e Strings.

  • Mapas <String, Object> geram problemas de cast.

  • Um objeto onde as preferências são atributos: bom pra tipagem e mais seguro, mas tem que ficar adicionando atributos (e getter e setters) toda vez que surgem novas preferências.

Qual melhor jeito?