Как вызвать непустой метод из пустого метода? - PullRequest
0 голосов
/ 20 января 2019

Можно ли вызвать метод int, который получает объект и возвращает значение int из метода void, отправляя ему временный объект?

Когда я попробовал это, я ничего не получил; окно вывода появляется на миллисекунду и исчезает. Я использовал этот код:

class test {

    int x (test ob) { return 10;}

    public static void main (String args[]) { new test().x(new test()) }

}

Ответы [ 3 ]

0 голосов
/ 20 января 2019

Одним словом да. Тип возврата вызывающего метода не влияет на тип возврата вызываемого метода. E.g.:

public class SomeClass() {
    public int increment(int i) {
        return i + 1;
    }

    public void printFiveTheHardWay() {
        System.out.println(increment(4));
    }
}
0 голосов
/ 20 января 2019

Да, вы можете вызывать любой метод из метода Void независимо от типа возвращаемого метода, например:

Ваш пример из комментария должен выглядеть следующим образом:

class test {

    int x(test ob) {
        return 10;
    }

    public static void main(String args[]) {
        System.out.println(new test().x(new test()));
    }
}

Более общий код для вашего лучшего понимания здесь:

public class Foo {
    private Integer value;

    public Integer getValue() {
        return value;
    }

    public void setValue(Integer value) {
        this.value = value;
    }
}

public class TestVoidMethodCall {

    public void voidMethod() {
        Foo f = new Foo();
        f.setValue(100);
        System.out.println(integerReturnMethod(f));
    }

    private Integer integerReturnMethod(Foo f) {
        return f.getValue();
    }
}

Итак, возвращаемый тип вызывающего метода не имеет отношения к возвращаемому типу вызываемого метода.

0 голосов
/ 20 января 2019

Да. Если он просто ожидает какой-либо объект, вы можете передать new Object() и получить в результате значение int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...