Java 构造泛型类

Java 构造泛型类,java,generics,Java,Generics,我有一个关于java泛型的简单问题。如何构造泛型类? 我有这门课: public class SearchResult<T extends Model> { public List<T> results ; public Integer count ; public SearchResult(List<T> results, Integer count){ this.results = results;

我有一个关于java泛型的简单问题。如何构造泛型类? 我有这门课:

public class SearchResult<T extends Model> {

    public List<T> results ;

    public Integer count ;

    public SearchResult(List<T> results, Integer count){
        this.results = results;
        this.count = count ;
    }
}
公共类搜索结果{
公开名单结果;
公共整数计数;
公共搜索结果(列表结果、整数计数){
这个结果=结果;
this.count=计数;
}
}

现在我想创建一个新的实例是SearchResult,但当我这样做时,我会得到一个错误<代码>搜索结果结果=新的搜索结果(myListOfMyModels,mycount)

T的类型需要限定为类或方法之类的对象

在本例中,您可能希望将类型参数T添加到搜索结果类中,如下所示:

public class SearchResult<T> {
    // as before
}
SearchResult<String> result = new SearchResult<String>(myListOfStrings, mycount);
公共类搜索结果{
//一如既往
}
并将实例化更改为类似以下内容:

public class SearchResult<T> {
    // as before
}
SearchResult<String> result = new SearchResult<String>(myListOfStrings, mycount);
SearchResult=newsearchresult(myListOfStrings,mycount);

编辑:最初SearchResult没有类型参数,所以我建议添加一个。如果问题是T必须扩展模型,那么您将无法创建搜索结果,因为字符串不会扩展模型。

您的类定义应该如下所示

public class SearchResult<T> {

    public List<T> results ;

    public Integer count ;

    public SearchResult(List<T> results, Integer count){
        this.results = results;
        this.count = count ;
    }
}
公共类搜索结果{
公开名单结果;
公共整数计数;
公共搜索结果(列表结果、整数计数){
这个结果=结果;
this.count=计数;
}
}
然后:

SearchResult=newsearchresult(myListOfStrings,mycount);

我假设既然
myListOfStrings
看起来是一个字符串,那么您需要将
T
定义为
字符串

,现在我已经修复了您的格式设置,很清楚发生了什么。您将泛型参数声明为扩展了
模型
,但试图用
字符串
参数值实例化该类。我确信
String
不会扩展
Model
(不管是什么)。

错误消息是什么?你在哪里声明?
?许多人删掉了问题中的原始问题……从而改变了问题的上下文。如果你查看历史,你会发现问题中的原始问题被错误的格式掩盖了。堆栈溢出正在删除<和>,使搜索结果看起来好像没有类型参数,而joshua没有以这种方式输入问题。实际上,我正在构建一个扩展模型的自定义类列表。