void processInternal(Integer x);
void processInternal(String x);

こういうの嫌いなんだよね。
実際に書いてみればわかるけどさ、
この後さらに他の型も使えるようにすると

void processInternal(Integer x);
void processInternal(String x);
void processInternal(Foo x);
void processInternal(Bar x);

みたいに同じようなのがずらずら並んでキモい。

こういうのはさ。

void processInternal(Param x);

みたいな物一つにして、
Param p = new Param(integer);
Param p = new Param(string);
Param p = new Param(foo);
Param p = new Param(bar);
ってやったほうがいいよ。