在Java中返回float数组的优雅方法是什么?

时间:2016-01-09 01:34:38

标签: java arrays

我基本上只需要返回一个新的float数组,如下面的代码所示:

private float[] setValues(String str){
    float[] array;
    switch(str){
    case "stuff":
        float[] tmp2 = {insert stuff here};
        array = tmp2;
        break;
    case "stuff2":
         float[] tmp = {insert stuff here};  
         array = tmp;
         break;
    default:
        array = null;
    }
    return array;
}

我知道它看起来很恶心,但我似乎找不到更好的方法来返回一个数组(除了返回每个开关中的数组,而不是将它分配给本地数组并返回||有大约~7案件)所以...你会如何优雅地做这件事?

1 个答案:

答案 0 :(得分:-1)

我正在做一些假设:

  • str非常稳定,可以包装成枚举
  • float数组是常量,因此也可以放入枚举

然后:制作一个枚举

public enum FloatEnum {
    STUFF({ float array of STUFF }),
    STUFF2({ float array of STUFF2 });

    private final float[] data;

     private FloatEnum(float[] data) {
        this.data = data;
    }

    public float[] getData() {
         return this.data;
    }

    public static float[] getDataFor(String str) {
         FloatEnum e = valueOf(str);
         return e.getData();
    }
}

您的方法是

private float[] setValues(String str) {
    // do str cleanups, if required (uppercase, trim etc)

     return FloatEnum.getDataFor(str);
}

更新:getDataFor需要是静态的......