Метод с несколькими входами Java - PullRequest
1 голос
/ 30 июня 2011

У меня есть интерфейс, и в интерфейсе я хочу объявить метод, который может принимать любое количество объектов в качестве входных данных.

Примерно так:

interface Implementable{
     public ReturnObj doIt(objects ....);
}

Пожалуйста, сообщите

Ответы [ 4 ]

5 голосов
/ 30 июня 2011

В вашем случае правильный синтаксис будет:

interface Implementable{
    public ReturnObj doIt(Object... objs);
}

Официальная документация для методов var-arg найдена здесь .

Я собирался спросить разницу между переменными и передачей массива,

Varargs компилируется в аргумент типа массива. Единственное отличие заключается в синтаксисе vararg, таких вызовах методов, как

doIt("hello", "world");

будет скомпилировано в

doIt(new Object[] { "hello", "world" });

Другими словами, с учетом декларации, такой как

public ReturnObj doIt(Object[] objs);

у вас будет

doIt(new Object[] { "hello", "world" });  // works fine
doIt("hello", "world");                   // won't compile

при наличии объявления var-arg оба вызова метода будут компилироваться и быть эквивалентными.

3 голосов
/ 30 июня 2011

Передайте массив:

public ReturnObj doIt(Object[] input);

или используйте эквивалентное выражение varargs

public ReturnObj doIt(Object... input);
1 голос
/ 30 июня 2011
  1. Вам нужно сначала понять varargs .
  2. В чем вопрос?

Пример:

interface Implementable{
    public ReturnObj doIt(Object... object);
}

В качестве альтернативы (что я бы предпочел, особенно в дизайне веб-сервисов):

interface Implementable{
    public ReturnObj doIt(Object[] object);
}
0 голосов
/ 30 июня 2011

Вы забыли задать вопрос, но, если вы хотите знать, как объявить метод, который принимает переменное число аргументов, перейдите по этой ссылке:

http://download.oracle.com/javase/1,5.0/docs/guide/language/varargs.html

Так было бы

interface Implementable{

         public ReturnObj doIt(Object... objects);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...