2014-02-05 2 views
0

매우 비슷하게 설정된 두 개의 다른 부울 변수가 있는데 두 개의 다른 클래스 개체를 인수로 처리 할 수있는 일반 메서드를 만들고 싶습니다.제네릭을 사용하여 두 가지 방법을 결합하십시오.

참고 : Area 및 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; 

그러나 일식이 찾아 ID가 해결할 수없는 또는 필드 아닌 수 말해됩니다.

내가 뭘 잘못하고 있니?

+0

아마도 'Area'와'HuntingField'는 공통 인터페이스를 구현해야합니까? – ooxi

답변

0

java.lang.Class에는 id라는 필드가 없습니다. javadoc을 참조하십시오. here

0

파인더에 대한 클래스를 착각하고 있습니다.

+0

이 코드에서 동일한 오류가 발생합니다. – user3275034

관련 문제