我是Java的新手,并且在整数数组中检查null元素时遇到问题.我正在使用Eclipse进行编辑,并且检查null元素的行显示错误:
抱怨的行:
if(a[i] != null) {
Run Code Online (Sandbox Code Playgroud)
来自Eclipse的错误信息:
The operator != is undefined for the argument type(s) int, null
Run Code Online (Sandbox Code Playgroud)
在PHP中,这没有任何问题,但在Java中,似乎我必须将数组类型从整数更改为Object以使该行不被抱怨(如下所示)
Object[] a = new Object[3];
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如果我仍然想要声明为整数数组并且仍然想要检查null,它的语法是什么?
码:
public void test() {
int[] a = new int[3];
for(int i=0; i<a.length; i++) {
if(a[i] != null) { //this line complains...
System.out.println('null!');
}
}
}
Run Code Online (Sandbox Code Playgroud) 我必须为类Stamp写一个构造函数.构造函数最多需要五个 String,int和double类型的参数.所以,构造函数看起来像这样:
public Stamp(String code, int year, String country, double value, int numberOfCopies){...}
Run Code Online (Sandbox Code Playgroud)
问题是,由于正在创建Stamp类的对象,因此不能提供所有参数,即,可以将对象声明为
Stamp stamp = new Stamp("some_code", 1991, "Burkina Faso", 50, 1000);
Run Code Online (Sandbox Code Playgroud)
以及
Stamp stamp = new Stamp("some_code", 1991, "Burkina Faso");
Run Code Online (Sandbox Code Playgroud)
并且构造函数必须在两种情况下都工作,即使参数列表被截断(在后一种情况下,一些默认值被赋值给value和numberOfCopies).当然,我可以编写六个构造函数(对于可能的参数数量,从0到5,假设参数始终遵循上述顺序,而不会混淆),但应该有更聪明的方法.我知道我可以声明构造函数
public Stamp(Object[] params){...}
Run Code Online (Sandbox Code Playgroud)
然后将params元素转换为相应的类.这可能会有效,但我总是要检查使用"if"条件为构造函数提供了多少参数,以便决定是否在未提供相应参数的情况下为变量分配默认值,或者使用提供的值(如果是给出.这一切看起来都很难看.因此,问题很简单:如果提供的参数列表长度不同且参数类型不同,构建构造函数(或其他方法)的方法是什么?