可以任何正文解释如何停止重复的名称。如果任何重复的名称给出,那么我需要显示相应的错误消息,如“名称已经存在”。所以应用程序包括类merchant.java,MerchantDao.java,MerchantImpl。 java class.so我需要在MerchantImpl.java类中实现该方法,该方法包含停止重复商家名称的逻辑。
Merchat.java
public class Merchant
{
private String merchant Name;
etc
}
MerchantImpl.java
public class MerchantImpl
{
need to define a method to prevent duplicate names;
}
答案 0 :(得分:2)
您可以覆盖hashCode并等于Merchant类的方法
@Override
public int hashCode() {
return name.hashCode();
}
@Override
// This really depends on if you want to compare only objects or names too.
// The following compares names too.
public boolean equals(final Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Merchant other = (Merchant) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
然后,将Merchant对象存储在Set集合中(以便更快地查找)。添加适当的检查以查看Set中是否已存在新的商家名称。
Set<Merchant> merchants = new HashSet<>()
// Populated the merchants
现在检查
// if merchant names are unique
merchants.contains(newMerchantObj)
P.S:我只建议使用商家名称的哈希码覆盖哈希码,因为您需要为商家维护唯一的名称。
答案 1 :(得分:0)
将所有名称保存在集合中,并在给出新名称时检查名称是否已在集合中。代码可能看起来像这样(您可能不需要新类):
class NameChecker {
Set<String> names = new HashSet<String>();
public void addName(String name) {
if (names.contains(name)) {
//print message
} else {
names.add(name);
// do what you have to with new names.
}
}
}
答案 2 :(得分:0)
将名称存储在集合中。遗憾的是,您没有提供显示如何获取新名称的代码,但以下代码示例可以帮助您:
//定义 Set names = new HashSet();
//代码中获取新名称的其他位置: if(names.contains(name)){ //打印错误消息 } names.add(名称); //添加新名称。
答案 3 :(得分:0)
搜索数据库中的输入名称(如果存在),然后将错误插入数据库中。
if(name exist in database)
error
else
add name in database.
实际代码取决于用于维护数据库的数据结构。
if(name_list.contains(name))
error
else
name_list.add(name);