当我尝试创建新的 int 对象时:
int g= new int();
netbeans 告诉我:
Incompatible types
required: int
found: int[]
'[' expected
illegal start of expresion.
我想简单地创建新的 int。
对于原始数据类型,您没有构造函数:
int g = 5;
或者只是说
int g; //declaration
但请记住,还有一些类包含每个原始数据类型的更多功能。它的数据类型名称用第一个大写字母写成:
Integer g = new Integer(5); //but it needs the parameter
例如,您有一个从字符串创建整数的函数:
Integer.parseInt("5");
但是声明部分对它们的需求并不大。
原语没有构造函数,因为它们不是对象。它们被简单地声明和初始化,如下所示:
int x = num;
如果你想/需要使用一个对象,你可以使用包装Integer:
Integer x = new Integer(num);
考虑以下关于自动拆箱和拆箱的示例:
int x_unboxed = new Integer(num); // unboxing
Integer x_boxed = 5; // autoboxing
拆箱是从Integer
或Wrapper
到int
或primitive
。
自动装箱是从int
或primitive
到Integer
或Wrapper
。
基本上 a是一个围绕aWrapper
的不可变对象。在这种情况下,包含一个.primitive
Integer
private final int
您可能需要使用包装器,例如,如果您想使用不能保存原语的List 。
Java中有两种类型的整数。
原语
int g = 1;
对象
Integer gObject = new Integer(1);
Java 中还有一个重要的东西叫做自动装箱。这是原语和对象之间的隐式转换。
自动装箱
gObject = g; // equivalent to Integer.valueOf(g)
g = gObject; // equivalent to gObject.intValue()
您只需要“新建”一个类或数组即可创建类 /array 的特定实例。'int' 是一种原始数据类型,因此您可以直接使用它:
int g;
g = 10;
System.out.println("g is: " + g);
您需要查阅一些介绍性的 Java 教程或书籍,了解基本数据类型并更详细地了解类/对象。
相反,如果您想创建一个由十个整数组成的数组,您将拥有
int[] g = new int[10];
这就是为什么您会收到令人困惑的错误消息。
祝你好运!
您正在尝试通过键入来创建一个整数对象
int g=new int()
这在 Java 中是错误的,因为您不能从原始类型创建对象。Java 是 99% 的面向对象语言。由于它没有摆脱诸如 int、float 等原始类型,因此您不能称之为纯粹的面向对象。
你可以做的很简单:
int g;
Integer g1=new Integer(g);
这将满足您对整数对象的需求。Integer 是一个包装器类,它包装 int g,并从中创建一个对象。请记住,只有在创建类的对象时才能使用new,并且 Integer 是类, int 不是类。
祝你好运!
这是 Java 中一个不幸的设计决定,原始类型(int
是其中之一)与对象的处理方式不同。您不能用于new
创建int
; 例如,您可以像在 C 中一样对待它们 - 只需分配一个值,无需构造任何东西:
int foo = 0;
请注意,您不能使用之前未显式初始化的局部变量。
有包装类,例如Integer
,简单地包装原始类型以允许它们在需要实际对象或类(例如泛型)的上下文中使用,但在您的情况下似乎没有必要。