java - 为未分配/可选参数设置随机值

标签 java parameters optional-parameters

我正在构建一个平铺 map 生成器应用程序,我希望用户在构建 map 时能够将 map 的子区域设置为特定类型的平铺。 目前的实现方式如下:

public boolean setArea(int bottomLeftX, int bottomLeftY, int subWidth, int subHeight, TerrainType aAreaType){
    boolean areaOverflow = false;
        System.out.println("Subarea coords...     x,y:"+bottomLeftX+","+bottomLeftY+" width/height:"+subWidth+"/"+subHeight);
        for(int x=bottomLeftX;x<=bottomLeftX+subWidth-1;x++){
            for(int y=bottomLeftY;y<=bottomLeftY+subHeight-1;y++){
                if(x>=0 && y>=0 &&
                   x<this.getWidth() && y<this.getHeight()){
                    this.setTile(x, y, aAreaType);
                }
                else{
                    areaOverflow = true;
                }
            }
        }
        return areaOverflow;
    }
}

(TerrainType 是一个包含地形类型信息的枚举,setTile 方法将 map 数组中的值设置为某种地形类型。this.getWidth/Height() 返回 map 数组的大小)

但我希望用户不必决定每个值并允许随机选择一些值。我最初的想法是允许用户将某些值设置为 null,如果一个值作为 null 传入,则让 Java 随机函数决定该参数的任意值(在映射的大小内),但是您不能将 int 设置为 null。我想知道替代方案会涉及什么?

最佳答案

您可以将参数定义为Integer,而不是int。那么您就可以为它们传递 null 值了。在该方法内部,您将能够检查这些参数是否为 null,并根据这些检查的结果采取行动。

关于java - 为未分配/可选参数设置随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28787073/

相关文章:

java - 使用 arraylist、Java 在文件中搜索和替换

javascript - 为什么函数在全局声明变量而不是 var 时起作用

c - C传递结构作为函数参数

ms-access - 在 MS Access accdb VBA 中,我如何知道为基于需要参数的查询构建的查询提供参数的顺序

C# 4.0,可选参数和 params 不能一起工作

c# - 无法使用可选参数推断泛型类型

python - 如何启用定义输入作为可选?

java - 访问 Java 中作为参数传递的对象的字段?

java - 从 csv 转换为 excel 期间出现 NoClassDefFoundError

Java- pdfBox 是否可以选择打开文件而不是加载文件?