相关疑难解决方法(0)

Java可选参数

如何在Java中使用可选参数?什么规范支持可选参数?

java optional-parameters

763
推荐指数
11
解决办法
87万
查看次数

如果在Java中它是整数数组,如何检查null元素?

我是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)

java arrays int null

14
推荐指数
2
解决办法
4万
查看次数

如何为不同类型的可变数量的参数编写Java构造函数?

我必须为类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)

并且构造函数必须在两种情况下都工作,即使参数列表被截断(在后一种情况下,一些默认值被赋值给valuenumberOfCopies).当然,我可以编写六个构造函数(对于可能的参数数量,从0到5,假设参数始终遵循上述顺序,而不会混淆),但应该有更聪明的方法.我知道我可以声明构造函数

public Stamp(Object[] params){...}
Run Code Online (Sandbox Code Playgroud)

然后将params元素转换为相应的类.这可能会有效,但我总是要检查使用"if"条件为构造函数提供了多少参数,以便决定是否在未提供相应参数的情况下为变量分配默认值,或者使用提供的值(如果是给出.这一切看起来都很难看.因此,问题很简单:如果提供的参数列表长度不同且参数类型不同,构建构造函数(或其他方法)的方法是什么?

java constructor

5
推荐指数
2
解决办法
5884
查看次数

标签 统计

java ×3

arrays ×1

constructor ×1

int ×1

null ×1

optional-parameters ×1