Redefinição de tipos em Java

É possível fazer uma redefinição de tipos (String, int, float) por outro tipo definido por nós?

Por, eu gostaria declarar a variavél String pk, como Key pk. Ou seja, gostaria de fazer com que todos os tipos Key sejam interpretados como String, mas são escritos no código como Key.

Há alguma forma de fazer isso?

O objectivo é, em vez de ter que declarar

Map<String, String> keymap;

poder declarar:

Map<Key, Value> keymap, sendo o tipo Key=Value=String.

Obrigado

Não, a classe String é final, não aceitando subclasses.

Você terá que implementar sua própria classe, e associar ela a classe String, com os respectivos delegates.