特定のプロパティに対して、他に類を見ないオブジェクトを作成したいと思います。
import java.util.HashMap;
public class SourceLanguage {
    private  final String name;
    private static HashMap<String,SourceLanguage> existing;
    private SourceLanguage(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public static SourceLanguage get(String name){
        if(existing==null){
            existing = new HashMap<>();
            SourceLanguage sl = new SourceLanguage(name);
            existing.put(name.toLowerCase(),sl);
            return sl;
        }
        SourceLanguage check = existing.get(name);
        if(check==null){
            SourceLanguage sl = new SourceLanguage(name);
            existing.put(name.toLowerCase(),sl);
            return sl;
        }else {
            return check;
        }
    }
}
このクラスのオブジェクトを別のマップのキーとして使用したいと思います。
ちょっとやり過ぎだと思います。目標を達成するためのより簡単な方法はありますか?