Java неявное приведение в параметрах функции - PullRequest
0 голосов
/ 02 июля 2018

Можно ли автоматически приводить целое число к объекту при передаче его в качестве параметра функции? у меня есть этот прототип функции:

public void aggiungiA(Nodo x)

У Nodo есть свой конструктор с целочисленным параметром. Теперь, что я хочу сделать, это:

aggiungiA(5);

с неявным приведением. есть ли вообще это сделать?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

В дополнение к ответу @ Mureinik, я думаю, вы пришли из C ++, где некоторые броски происходят автоматически. В Java все по-другому - единственные неявные выражения:

  • Расширение числовых типов в выражениях. Например, в long x = myLong + inInt myInt будет приведен к значению задолго до добавления двух длинных значений
  • Примитивные значения их объекта равнозначны. Например, «int» автоматически приводится к «Integer», а «boolean» может автоматически приводиться к «Boolean». Это называется автобоксом
  • В штучной упаковке объекты могут быть возвращены к их личным значениям. Например, «Integer» может быть преобразовано в «int» или «Character» в «char». Так как это противоположно предыдущему, это называется автоматическим распаковыванием.
0 голосов
/ 02 июля 2018

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

public class MyClass {
    public void aggiungiA(int i) {
        aggiungiA(new Nodo(i));
    }

    public void aggiungiA(Nodo x) {
        // Do something with X
    }
}
...