The possible problems are:
- You are delaying type validation till the application execution and don't take advantage of type safety. So you'll have errors during execution which could be easily caught at compilation time.
- You are loosing control of how types are inferred which might lead to weird formatting in some cases
My advise is to use setObject only if absolutely necessary.