Java 换行字符串键以区分外部键和内部键
我们有两种ID,内部ID和外部ID。当前记录既有内部ID也有外部ID,将来可能会有外部B类型的ID,因此某些记录可能有内部ID和外部ID 我们目前将所有ID表示为字符串。它可能导致错误,方法需要内部密钥,但实际传递了外部密钥 我们如何防止这种类型的错误?将字符串键包装到InternalID、ExternalAID、ExternalBID类中并在任何地方使用这些包装器对我们有用吗?Java 换行字符串键以区分外部键和内部键,java,java-8,Java,Java 8,我们有两种ID,内部ID和外部ID。当前记录既有内部ID也有外部ID,将来可能会有外部B类型的ID,因此某些记录可能有内部ID和外部ID 我们目前将所有ID表示为字符串。它可能导致错误,方法需要内部密钥,但实际传递了外部密钥 我们如何防止这种类型的错误?将字符串键包装到InternalID、ExternalAID、ExternalBID类中并在任何地方使用这些包装器对我们有用吗? 我担心内存占用,特别是当我们谈论数亿个键,或者其他可能出错的东西时,可能会发生这种情况。我认为所有字符串键都需要一个
我担心内存占用,特别是当我们谈论数亿个键,或者其他可能出错的东西时,可能会发生这种情况。我认为所有字符串键都需要一个鉴别器。例如:
String internalKey= "I1000201";
String externalAKey= "A1000201";
String externalBKey= "B1000201";
char type = key.charAt(0);
if(type != 'I') throw new IllegalArgumentException("Invalid key");
// go on
然后,您可以通过第一个字符检查实际密钥类型来防止错误,例如:
String internalKey= "I1000201";
String externalAKey= "A1000201";
String externalBKey= "B1000201";
char type = key.charAt(0);
if(type != 'I') throw new IllegalArgumentException("Invalid key");
// go on
如果所有键都使用不同的鉴别器,则还可以从String
键创建自己的Key
类
Key internal = Key.from("I1000201"); //internal key
Key external = Key.from("A1000201"); //external key A
Key.from("X1000201");
// ^--- throws IllegalArgumentException for invalid key type
那是我的想法exactly@Eugene我还受到hibernate中所有实体的一个表支持的启发。:)如果我没记错的话,我们在代码库内部也会这样做,在代码库中,我们携带一个
字节[]
,第一个字节始终只是一些元数据。。