gpt4 book ai didi

java - 如何实现通用方法

转载 作者:行者123 更新时间:2023-12-02 06:56:10 25 4
gpt4 key购买 nike

我需要将该方法实现为通用方法。怎么做?

public SelectItem[] criarFiltroSexo(Sexo[] tp){
SelectItem[] options = new SelectItem[tp.length];
for(int i = 0; i < tp.length; i++) {
options[i] = new SelectItem(tp[i].getId(),tp[i].getDescricao());
}
return options;
}

我必须实现更多这样的方法,并且我需要为每个不同的实体进行复制。所以我有很多方法 criarFiltroxxx

我想实现这样的事情:

public <E> criarFiltrogenerico(E[] tp){
SelectItem[] options = new SelectItem[tp.length];
for(int i = 0; i < tp.length; i++) {
options[i] = new SelectItem(tp[i].getId(),tp[i].getDescricao());
}
return options;
}

但是我收到错误消息:方法的返回类型丢失......

最佳答案

But I got error message : return type of method is missing.....

行中:

public <E> criarFiltrogenerico(E[] tp) {

你拥有的是public关键字,<E>类型变量和 criarFiltrogenerico(E[] tp)方法名称和参数。

当然,您缺少返回类型。添加它:

public <E> RETURN-TYPE-HERE criarFiltrogenerico(E[] tp) {

所以这会起作用:

public <E> SelectItem[] criarFiltrogenerico(E[] tp) {
SelectItem[] options = new SelectItem[tp.length];
for(int i = 0; i < tp.length; i++) {
options[i] = new SelectItem(tp[i].getId(),tp[i].getDescricao());
}
return options;
}

需要注意的是类型 E必须有getId()getDescricao()方法。如果您有具有这些方法的父类/接口(interface),请说 ParentItem (其中 Sexo extends ParentItemSexo implements ParentItem ),您应该使用:

public <E extends ParentItem> SelectItem[] criarFiltrogenerico(E[] tp) {

关于java - 如何实现通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17319869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com