当前位置: 首页 > 知识库问答 >
问题:

添加参数以匹配add(int,?扩展号码)

能正青
2023-03-14

我试图在下面的填充()方法中填充一个列表,使用泛型来放松类型参数的限制,但我一直出错

类型列表中的add(int,capture#2-of?extends Number)方法不适用于参数(int)

当我尝试用编译器修复它时,它会自动用null填充列表。请问我该如何解决这个问题:

public static void fill(List<? extends Number> list) {
   for (int i=0; i < 10; i++) {
      list.add(i);
   }
}

共有2个答案

吴缪文
2023-03-14

这就是你想要的吗?

public static void fill( List<Number> list ) {
  for( int i = 0; i < 10; i++ ) {
    list.add( Integer.valueOf( i ) );
  }
}

一个可能的电话是:

ArrayList<Number> a = new ArrayList<>();
fill( a );

该列表还可以容纳LongFloatDouble

赵永新
2023-03-14

代码列表

这可能会奏效,例如:

public static void fill(List<? super Integer> list) {
   for (int i=0; i < 10; i++) {
      list.add(i);
   }
}

可以将声明为整数列表、数字列表或任何超类的变量作为参数传递。

 类似资料:
  • 问题内容: 我有这个功能: 如您所见,它将字典转换成一个字典(没有可选的)。 我只想为值是任何类型的类使用新方法扩展该类,但是我无法为字典的通用参数添加约束。 这是我尝试的: 但失败并显示错误: 问题答案: 在Playground中尝试以下代码: 因为您不能在协议扩展的子句中指定确切的类型,所以可以准确检测到该类型的一种方法是使UNIQUELY符合协议(例如)。 为了获得的包装值类型,我在自定义协

  • 问题内容: 我正在尝试使用简单的Chrome扩展程序,但是在为数组提供值时遇到了问题。 当我尝试将此扩展程序加载到Chrome中时,收到以下消息: 无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。 “ content_scripts”的值无效。 我看不到我的值是什么“无效”。我想做的是匹配每个URL,以便我的扩展程序可以操纵它所运行的

  • 我试图将整数数组列表添加到类中的数组列表中。不幸的是,我得到了错误消息

  • 我使用这个神奇的标题来获得轻松序列化STL容器的能力。 然而,我现在已经开始为我的类型使用更高级的HTML序列化程序,我想做的部分工作是泛化

  • 问题内容: 我需要知道是否有可能通过扩展将某些属性和行为添加到某些POJO JPA实体(使用 hibernate 提供程序),然后使EntityManager返回扩展对象而不是仅返回pojo实体,如以下示例: POJO JPA实体类 扩展类 获取扩展类的对象 我评估的另一种可能的方法是使用复合实体扩展功能,并委派所有设​​置方法和获取方法,但这可能意味着需要处理大量表: 任何建议将不胜感激。 问题

  • 在一个同时使用静态编程语言和java的Android项目中,我想在一些java文件中使用静态编程语言函数和。 所以我想到了使用扩展。我做了下面的工作, 然而,我曾考虑将分隔符作为参数传递,但在java中尝试使用“删除第二个参数…”时,它给了我一个错误 方法正确吗?能做到吗?