JAVA - 返回接口列表

Shi*_*ami 3 java interface list implements

我有这个问题,我想只在if块之后返回一个接口和实现类的列表.

public interface Lotto { }

public class LottoImplSecond implements Lotto { }
public class LottoImplFirst implements Lotto { }

public class MyClass {
   public List<Lotto> getLotto(Integer number){
       if(number==1) List<Lotto> listaLotto=new ArrayList<LottoImplFirst>();
       else if(number==2) List<Lotto> listaLotto=new ArrayList<LottoImplSecond>();
   return listaLotto;
}
Run Code Online (Sandbox Code Playgroud)

pap*_*pap 12

public interface Lotto { }

public class LottoImplSecond implements Lotto { }
public class LottoImplFirst implements Lotto { }

public class MyClass {
   public List<? extends Lotto> getLotto(Integer number){
       List<? extends Lotto> listaLotto;
       if(number==1) listaLotto=new ArrayList<LottoImplFirst>();
       else if(numeber==1) listaLotto=new ArrayList<LottoImplSecond>();
       return listaLotto;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,通配符类型由调用站点解析,而不是由被调用者解析.这使得整个构造完全无用,即使它编译.调用者只需要处理"?"的捕获,获得**零**的好处作为回报.所以我会考虑对OP这个糟糕的建议. (5认同)