Конструктор с меньшим количеством аргументов от конструктора - PullRequest
4 голосов
/ 29 марта 2010

У меня есть дерево конструктора (int a, int b, int c) и второе дерево конструктора (int a, int b, int c, String s). Как загрузить второй конструктор из первого, чтобы сохранить запись всех логик? Я думал о чем-то подобном, но это дает мне нулевой объект.

public Tree(int a, int b, int c){
    Tree t1 = new Tree(a, b, c, "randomString");
}

Ответы [ 4 ]

10 голосов
/ 29 марта 2010

Волшебное слово this, например,

public Tree( int a, int b, int c, String d ) {
    // Do something
}

public Tree( int a, int b, int c ) {
    this( a, b, c, "randomString" );
}
1 голос
/ 29 марта 2010

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

public Tree(int a, int b, int c){
    this(a, b, c, "randomString");
}
1 голос
/ 29 марта 2010

в первой строке конструктора вы можете вызвать другой конструктор:

public Tree(int a, int b, int c, String s)
{
}

public Tree(int a, int b, int c)
{
    this(a,b,c,"someString");
}
1 голос
/ 29 марта 2010
public Tree(int a, int b, int c){
    this(a, b, c, "randomString");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...