Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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 int参数不是负的_Java_Int_Negative Zero - Fatal编程技术网

Java int参数不是负的

Java int参数不是负的,java,int,negative-zero,Java,Int,Negative Zero,我正在用Java编写一个包含3个参数的方法,最后一个参数(int-step)不能为0或负。目前,我有这样的想法: public static int[] createMonotoneIncreasingArray(int start, int end, int step) { if (step <= 0) throw new IllegalArgumentException("Step cannot be lower than 1 in a monotone increasing

我正在用Java编写一个包含3个参数的方法,最后一个参数(int-step)不能为0或负。目前,我有这样的想法:

public static int[] createMonotoneIncreasingArray(int start, int end, int step) {
    if (step <= 0) throw new IllegalArgumentException("Step cannot be lower than 1 in a monotone increasing array");

    int[] resultArray = new int[(end - start) / step];

    for (int i = 0; i < resultArray.length; i++) resultArray[i] = i * step + start;

    return resultArray;
}
public static int[]createMontonoIncreasingArray(int开始、int结束、int步){

如果(step是的,有一种方法。你可以传递一个类的实例,而不是一个int。在这种情况下,你可以创建一个名为step的类。你仍然需要检查step在Steps构造函数中的值的正确性。但是在这样做之后,你可以知道如果你有一个step实例,它的值大于0;

public class Step {

   private int value;

   public Step(int value) {
      if (value <= 0) throw new IllegalArgumentException("Step cannot be lower than 1");
      this.value = value;
   }

   public int getValue() { return value; }
}


public static int[] createMonotoneIncreasingArray(int start, int end, Step step) {
    int[] resultArray = new int[(end - start) / step.getValue()];
    for (int i = 0; i < resultArray.length; i++) resultArray[i] = i * step.getValue() + start;
    return resultArray;
}
公共类步骤{
私有int值;
公共步长(int值){

如果(值No.Java没有无符号整数类型-即使有,您仍然必须拒绝0。引发异常有什么错?这是完全有效的…并避免异常?您所说的“拒绝”是什么意思?您编写的代码是检查步骤>0的一种很好的方法。您可以添加,但这通常需要更多的努力。如果异常不是您想要的,您可以只返回一个空数组,或者如果步骤为空,则返回null吗?谢谢!我创建了一个PositiveInteger类,以便在需要时可以随时重用它。