У меня есть две разные булевы переменные, которые установлены очень похожими, и я хочу создать общий метод, который может обрабатывать два разных объекта класса в качестве аргумента.Объединить два метода с использованием генериков
Примечание: Area and HuntingField - это два объекта, которые я создал с помощью ebean.
В настоящее время это то, что я делаю для того, чтобы установить две булевы:
boolean isNewArea = (Area.find.where().eq("id", area.id)
.findRowCount() == 1) ? false : true;
if (isNewArea) {
area.save();
}
boolean isNewHuntingField = (HuntingField.find.where()
.eq("id", hf.id).findRowCount() == 1) ? false : true;
if (isNewHuntingField) {
hf.save();
Эти два метода находят определенные в соответствующих классах:
public static Finder<String, HuntingField> find = new Finder<String, HuntingField>(
String.class, HuntingField.class);
public static HuntingField find(String searchString) {
return find.where().eq("id", searchString).findUnique();
}
и это:
public static Finder<String, Area> find = new Finder<String, Area>(
String.class, Area.class);
public static Area find(String searchString) {
return find.where().eq("id", searchString).findUnique();
}
Теперь я хочу создать метод, который принимает объект типа HuntingField или тип области е объект в качестве параметра и использует соответствующий метод найти на этом объекте и возвращает логическое значение:
public static <T> boolean alreadyExist(Class<T> obj){
boolean isNewArea = (obj.find.where().eq("id", obj.id)
.findRowCount() == 1) ? false : true;
Но затмение говорит мне, что найти и идентификатор не может быть разрешен или не является полем.
Что я делаю неправильно?
Может быть, 'Area' и' HuntingField' должны реализовывать общий интерфейс? – ooxi