java interface list_java:当SomeClass实现SomeInterface时,从List转换为List

我有一个大脑抽筋:我有一个公共接口SomeInterface和一个静态私有类SomeClass,我试图返回一个List< SomeInterface>从我的一个方法,但我得到错误(在返回列表;下面的行):

Type mismatch: cannot convert from List to

List

如何在不创建新列表的情况下解决此问题?

澄清:我不希望将列表创建为List< SomeInterface> (也许是显而易见的解决方案)因为私下我想维护一个List< SomeClass>允许将来访问SomeClass的方法,而不是公共接口中的方法.这在下面的示例中没有显示,但在我的真实程序中我需要这个.

import java.util.ArrayList;

import java.util.List;

public class GenericList1 {

public interface SomeInterface

{

public int getX();

}

private static class SomeClass implements SomeInterface

{

final private int x;

@Override public int getX() {

return this.x;

}

public SomeClass(int x) { this.x = x; }

}

public static void main(String[] args) {

List list = createList(10);

printList(list);

}

private static void printList(List list) {

for (SomeInterface si : list)

System.out.println(si.getX());

}

private static List createList(int n) {

List list = new ArrayList();

for (int i = 0; i < n; ++i)

list.add(new SomeClass(i));

return list;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值