1
12
要将参数传递给varargs方法,编译器将把参数放入数组中。
警告是让您知道编译器不能保证数组中的每个元素(varags方法的每个参数)都是真正的
这是一个有点烦人的警告,因为除了重新定义方法签名以不使用varargs之外,没有其他方法可以解决这个问题。在IMO中,只要您非常确定这些参数的实际运行时类型(在本例中是这样),就可以安全地忽略这些参数。 |
2
4
除了添加
既然你说这是一个私有的方法,那么在这种情况下就没有“客户”,你可以控制这个方法,所以忽略这个警告似乎是合理的。 有几次,当我创建以参数化类型作为varargs参数的方法时,我创建了一些重载:
这可以避免一些警告,具体取决于提供了多少参数。 |
3
3
对于任何登陆这里的人来说,答案都有点陈旧。Java7引入了
从javadoc:
|
4
2
通过使用一些构建器接口(例如 the one I'm using ). 使用这个CollectionBuilder,它会变成这样:
没有通用参数会更漂亮:
作为varargs解决方案,它当然要长一些,但有时还是很方便的。 |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
milczi · Swift通用无强制展开向下投射 6 年前 |
bugs · Typescript-泛型类型扩展自身 6 年前 |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |