В Java размер массива не является частью его типа.Или, другими словами, все типы массивов с заданным базовым типом одинаковы.Кроме того, вы не можете использовать метод signature , который накладывает ограничения на размер параметра или результата, введенного в массив.
Это означает, что у вас остается кодирование метода тестирования (в вашем случае) длина массива, который он собирается вернуть.Это, вероятно, не очень вам поможет, так как я предполагаю, что вы пытаетесь использовать статическую типизацию для обеспечения «тройственности» ваших массивов.С этой точки зрения ответ @matt b на деньги, хотя вы могли бы сделать это таким образом, чтобы получить массивы (длиной 3):
public class AdapterTriple {
private Adapter[] adapters;
/**
* This constructor may throw an exception
*/
public AdapterTriple(Adapter[] adapters) {
if (adapters.length != 3) {
throw new IllegalArgumentException("array length is wrong");
}
this.adapters = adapters;
}
/**
* This constructor won't throw an exception (apart from Errors)
*/
public AdapterTriple(Adapter adapter1, Adapter adapter2, Adapter adapter3) {
this.adapters = adapters = new Adapters[] {
adapter1, adapter2, adapter3};
}
/**
* @return an array of 3 adapters.
*/
public Adapter[] {
return adapters;
}
}
Таким образом, вы не можете применить ограничения размера массивастатически в Java.Вы должны делать это динамически, но вы можете предпринять шаги, чтобы избежать ошибок во время выполнения.