может ли метод иметь более одного типа входов? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть метод, и я хочу иметь для него два типа входных данных. например:

это мой метод:

     private int myMethod(/*inputs*/) {
        //do stuff
     }

, и если я назову его как myMethod(5);, он выполняет некоторые действия. но если я назову его как myMethod(5 , Alex), он будет делать что-то очень похожее на прошлый раз, но с разными типами возврата.

возможно ли это сделать? Я пытаюсь избежать дублирования кода.

Ответы [ 4 ]

4 голосов
/ 06 мая 2020

Это называется перегрузкой метода. Да, ты можешь это сделать. Но вам придется написать два метода

private int myMethod(int input) {
        //do stuff
}

и

private int myMethod(int input, String anotherInput) {
        //do stuff differently
}
0 голосов
/ 07 мая 2020

Вы можете создать метод с параметром a String Type Arrary . если вам нравится избегать дублирования ( перегрузка метода ):

 private int myMethod(String [] in)
     {

     }

, тогда вы можете преобразовать первое, а не только первое значение массива String , которое вы передаете в параметр метода любой DataType

, используя метод: valueOf ()

int i = Integer.valueOf(in[0]);
0 голосов
/ 06 мая 2020

U может передавать нулевое значение и проверять, является ли его значение нулевым, а затем делать соответствующие действия. Если вы новичок в java, попробуйте концепции перегрузки методов.

myMethod(int i, String s){
 if(s != null ){
  //do stuff
 }else{
  //do stuff
}
0 голосов
/ 06 мая 2020

для отправки нескольких параметров с более чем одним типом ввода:

 public static void print( Object... values){
       for(Object d : values){
          System.out.println(d);
       }
 }

, а затем:

print("test","test1",1,2,3);

или посмотрите этот пример для ввода одного типа:

public void doSomething(int... integers)
  {
    for (int i : integers) 
    {
      ...
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...