Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java new Integer()被阻止_Java - Fatal编程技术网

Java new Integer()被阻止

Java new Integer()被阻止,java,Java,我创建向量,我想在向量中加整数。 但是“new Integer()”有错误 Vector<Integer> intergers = new Vector<Integer>(); intergers.add(new Integer()); 向量整数=新向量(); add(新整数()); 我能做什么 现在我使用“Integer”和类似“newinteger(0)”的参数 但“新整数(0)”有黄色下划线。要删除此行,我可以做什么 好的,为什么构造函数整数(int)从版本9

我创建向量,我想在向量中加整数。 但是“new Integer()”有错误

Vector<Integer> intergers = new Vector<Integer>();
intergers.add(new Integer());
向量整数=新向量();
add(新整数());
我能做什么

  • 现在我使用“Integer”和类似“newinteger(0)”的参数 但“新整数(0)”有黄色下划线。要删除此行,我可以做什么

  • 好的,为什么构造函数整数(int)从版本9开始就被弃用了

  • 好的!我找到了原因
很少使用此构造函数。静态工厂值(int)通常是更好的选择,因为它可能会产生显著更好的空间和时间性能

thx all

没有无参数构造函数

唯一的构造函数是分别接受
String
int
的构造函数

因此,您可以:

integers.add(new Integer("6"));


但后一个已弃用,应替换为
Integer。valueOf(5)

您应该编写
Integer
并按如下方式传递参数:

Vector<Integer> intergers = new Vector<Integer>();
intergers.add(new Integer(1));
Vector<Integer> intergers = new Vector<Integer>();
intergers.add(0);
向量整数=新向量();
整数加(新整数(1));
您应该使用“整数”,而不是“整数”。此外,Integer类不接受空构造函数。工作代码应为:

Vector<Integer> integers = new Vector<Integer>();
integers.add(new Integer(2));
List<Integer> integers = new ArrayList<Integer>();
integers.add(2);
向量整数=新向量();
加上(新的整数(2));
然而,Java有这个概念。因此,更简洁的代码是:

Vector<Integer> integers = new Vector<Integer>();
integers.add(2);
向量整数=新向量();
整数。加(2);
Vector的方法是同步的,因此它支持多线程。然而,在大多数情况下,这并不好。所以我建议您切换到ArrayList。因此,更新版本为:

ArrayList<Integer> integers = new ArrayList<Integer>();
integers.add(2);
ArrayList integers=new ArrayList();
整数。加(2);
最后一点,您应该更喜欢使用`List作为数据类型,因为。因此,最终版本应为:

Vector<Integer> integers = new Vector<Integer>();
integers.add(new Integer(2));
List<Integer> integers = new ArrayList<Integer>();
integers.add(2);
List integers=new ArrayList();
整数。加(2);
没有无参数构造函数。即使是one-arg构造函数也不推荐使用,您应该避免使用它。您应该使用
Integer.valueOf(int)
,例如

Integer x = Integer.valueOf(0);
但是,您可以简单地执行以下操作:

Vector<Integer> intergers = new Vector<Integer>();
intergers.add(new Integer(1));
Vector<Integer> intergers = new Vector<Integer>();
intergers.add(0);
向量整数=新向量();
整数加(0);

Java的特性将确保
0
自动转换为
Integer.valueOf(0)

您编写了Integer?是吗?但是它会出错。因为它是整数而不是整数。@SuperShark-如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。公认的答案有助于未来的访问者自信地使用解决方案。检查以了解如何操作。thx但它有黄色线条我编辑了答案以包含这两行,并在我的计算机上进行了测试。@MajedBadawi-您应该避免使用
新整数(1)
,因为此构造函数已被弃用。您应该使用
Integer.valueOf(1)
。请注意
Integer​(int值)
自Java 9以来已被弃用。最好使用
Integer.valueOf(5)
integers.add(5)再次变得更容易。