Erro ao compilar metodos com Generics[Resolvido]

tenho o seguinte classe com o método queryOn:

[code]
public class QueryUnique implements Query {

private DetachedCriteria detached =null;

 public E queryOn(Repository repository) throws RepositoryException {
 
    return repository.uniqueResult(detached);
}

}[/code]

e no meu repositório tenho o seguinte método

public <R> R uniqueResult(DetachedCriteria detached) throws RepositoryException { Session hibernateSession = (Session) this.manager.getDelegate(); return (R) detached.getExecutableCriteria(hibernateSession).uniqueResult(); }

porém ao compilar me exibi esse erro:

type parameters of <R>R cannot be determined; no unique maximal instance exists for type variable R with upper bounds E,java.lang.Object return repository.uniqueResult(detached);

como posso mudar meu código para esse erro não ocorrer?

Voce não sabe nesse lugar qual a classe do tipo R.
voce devia fazer algo assim então

 public <R> R uniqueResult(DetachedCriteria detached, Class<R> clazz) throws RepositoryException {
        Session hibernateSession = (Session) this.manager.getDelegate();
        return (R) detached.getExecutableCriteria(hibernateSession).uniqueResult();
    }

Nesse caso ele faria o cast.

[quote]tenho o seguinte classe com o método queryOn:

    public class QueryUnique<E> implements Query<E> {  
      
    private DetachedCriteria detached =null;  
      
      public E queryOn(Repository repository) throws RepositoryException {  
        
         return repository.uniqueResult(detached);  
    }  

public class QueryUnique implements Query { private DetachedCriteria detached =null; public E queryOn(Repository repository) throws RepositoryException { return repository.uniqueResult(detached); } }

e no meu repositório tenho o seguinte método

public <R> R uniqueResult(DetachedCriteria detached) throws RepositoryException { Session hibernateSession = (Session) this.manager.getDelegate(); return (R) detached.getExecutableCriteria(hibernateSession).uniqueResult(); } [/quote]
Esse cast já existe o que fiz foi mudar para

public <R> Object uniqueResult(DetachedCriteria detached) throws RepositoryException { Session hibernateSession = (Session) this.manager.getDelegate(); return (R) detached.getExecutableCriteria(hibernateSession).uniqueResult(); }

Informando que seria do tipo Object resolveu meu problema.