We use make heavy usage of java.util.UUID in our projects to identify ojbects and do operations on them like in this interface:

```
List<UUID> searchPerson(String text);
Person fetchPerson(UUID personUUID);

List<UUID> searchAdress(String text);
Person fetchAdress(UUID adressUUID);

```

But what can happen now, and is a source of Runtime errors, is that a developer accidently passes a personUUID to the fetchAdress method, which should not happen.

Is there any way to make this kind of "type safe" so hat he can't pass the fetchAdress method a personUUID? Maybe there is a way to do this using generics?