I agree this is trappy! Especially because these are sugar APIs... which should especially not be trappy.
I don't know what was the intention to change this in trunk,
This was my fault: I did this under
LUCENE-3453... each of our Field impls (well, Field, NF, DVF) had their own setters to change their value... I consolidated all of these under Field's APIs, which I agree are trappy.
I think we should just break with 3.x here and change Field.setValue(T x) -> Field.setTValue(T x).
I prefer sugar classes (new IntField(7), new IntValueField(7)) instead of static factory methods (NumericField.newIntField(7), DocValuesField.newIntField(7))...
I'll take a crack at this.