使用Java泛型类型类时发生编译时错误

时间:2018-09-27 00:57:59

标签: java generics

无法返回所需的通用类型格式

我正在使用通用类型类

public class GResponse<T> {
   public String msg;
   public String status;
   public T res;
}

,在下面的类中,我需要返回GResponse

public GResponse<User_details> Uname(String username) {

    Session session = sessionFactory.openSession();

    Criteria criteria = session.createCriteria(User_details.class);
    criteria.add(Restrictions.eq("user_id", username));
    criteria.add(Restrictions.eq("auth_stat", "A"));
    List<User_details> list2 = criteria.list();
    if (list2.size() == 1) {

    }
    return User_details(list2);
   // return loginDao.findByUsername(username);
}

但是在上面的return语句中,它给出了编译时错误。

1 个答案:

答案 0 :(得分:0)

您的return方法使程序在您的特定类中寻找User_details(List<User_details> list2)方法。也许您打算这样做return new User_details(list2);,但是从外观上您想容纳一个详细信息列表,然后将其存储在GResponse实例中。

任何一种更好的方法都是:

public class GResponse<T> {
  public String msg;
  public String status;
  public T res;

  public void add(T res) {
      this.res = res;
  }
}
.
.
.

GResponse<List<User_details>> completeDetails = new Gresponse<List<User_details>>();
completeDetails.add(list2);

return completeDetails;

也请在以后的帖子中加入错误消息。