gpt4 book ai didi

java - 保证返回数组的长度

转载 作者:行者123 更新时间:2023-12-02 07:59:03 25 4
gpt4 key购买 nike

我想尝试为方法分配一个“契约”或某种类型的基础,以保证从方法返回的数组的长度始终具有 x 长度。

在伪java中,这将是惊人的:

public String[4] someMethod() {...}

但是,这在语法上似乎不正确。我的想法是创建一个 @interface 来保证这一点:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface ArrayLength {

public int size() default 0;

}

//...
@ArrayLength(size = 4)
public String[] someMethod() {...}

但这实际上只是目前的一个表面修复。有没有办法生成一个简单的方法来保证数组长度(不运行异常),这可能会通过编译器/IDE警告,或者这在java中目前是不可能的?

作为奖励,如果有一种方法可以通过 netbeans(我的 IDE)简单地生成警告,然后在编译时删除多余的警告,那就太好了。

最佳答案

package com.project.stock.testArray;

public interface ILen {
String GET_ARRAY = "getArray";

public String[] getArray(String arr[]);

}

package com.project.stock.testArray;

/**
* @author Bhaskar
*/
public class ComputeLength implements ILen {

/*
* Desciption: Method checks for the length of the input array and returns
* it.
*
* @see com.project.stock.testArray.ILen#getArray(java.lang.String[])
*/
public String[] getArray(String arr[]) {
// Returns if the input array is of length 4.
if (arr.length == 4) {
for (String str : arr) {
System.out.println(str);
}
return arr;
}
// Returns if the input array is of length greater than 4 and checks if
// each for string.
else if (arr.length > 4) {
String[] arr_copy = new String[4];
for (int i = 0; i < arr.length - 1; i++) {
if (i >= 4) {
break;
} else {
if (arr[i].matches("[a-zA-Z]*")) {
arr_copy[i] = arr[i];
}
}
}
for (String str : arr_copy) {
System.out.println(str);
}
return arr_copy;
} else {
System.out.println("Length" + arr.length);
String[] arr_duplicate;
arr_duplicate = arr.clone();
for (String str : arr_duplicate) {
System.out.println(str);
}
return arr_duplicate;
}
}

/**
* @param args
*/
public static void main(String[] args) {
ComputeLength obj = new ComputeLength();
String arr[] = new String[10];
arr[0] = "Name";
arr[1] = "Address";
arr[2] = "City";
arr[3] = "Country";
obj.getArray(arr);
}
}

希望这对您有帮助。

从你提到的内容中我可以得出的是,你需要一个方法来返回一个长度为 4 的字符串,其中包含各种输入。我尝试用模拟对象设计相同的东西。该代码认为字符串可以是任意长度,并在输入数组长度超过 4 的情况下返回输入数组中的前四个值。快乐编码:)

关于java - 保证返回数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com