2014-02-13 5 views
-5

Я хочу получить значение из класса A в класс B через сеттер и getter.Получить значение из другого класса

В классе А, я задал и присваиватель так:

public class A { 
    String value; 

    public String getvalue() { 
     return value; 
    } 

    public void setvalue(String value) { 
     this.value = value; 
    } 

    ... 

    public void taskA() { 
     GsonRequest<> myReq = new GsonRequest<>(someTask()); 
    } 

    private someTask(){ 
     String encrypted = "Some string"; 
     setvalue(encrypted); 
    } 
} 

В классе B я хочу использовать сорбент в классе А, чтобы получить его значение.

public class B { 

    A a; 

    private void callTask() { 
     a = new A(); 

     Log.d("Value", a.getvalue()); 
    } 
} 

"value" возвращает null. Как это исправить?

EDIT: Я делаю это в своем проекте Android.

+0

Где: e_password? И где вы его назначаете? – Maroun

+0

Извините, это должно было быть 'value'. Забыл изменить его (для простоты) – AimanB

+1

Все ответы должны быть удалены сейчас: D – Maroun

ответ

4

value не инициализируется перед использованием и быть String типа, значение по умолчанию null. Следовательно, вы получаете значение как null.

Вам необходимо явно установить value, используя его метод настройки, как показано ниже.

private void callTask() { 
    a = new A(); 

    //Set Value Here 
    a.setvalue("Your Value Goes Here "); 

    // Get Value Here 
    Log.d("Value", a.getvalue()); 
} 
+1

Единственный правильный ответ :) +1 – Maroun

+0

Подождите, я не понимаю. Поэтому мне нужно установить значение «вручную» из класса B, а не в класс A? Как мне получить значение из класса А? o.o – AimanB

+2

@AimanB - * Я хочу получить значение из класса A в класс B через сеттер и getter * - Без использования setter для установки значения его бессмысленно использовать getter для получения значения. И вы получаете значение только из класса 'A'. – SudoRahul

0

Вы должны вернуть value

public String getvalue() { 
    return value; 
} 

И убедитесь, что вы устанавливаете значение value, прежде чем получить это. Иначе, что будет возвращать это значение по умолчанию, который null здесь

+0

Извините, это предназначалось для 'value'. Забыл изменить его (для простоты) – AimanB

0

Я думаю, что вы просто хотите передать ссылку создаваемого объекта из класса «А» до метода или конструктора класса «B»:

public class B { 

    private void callTask(final A a) { 

     Log.d("Value", a.getvalue()); 
    } 
} 

Конечно, вы должны создать объект класса «А», прежде чем передать его методу «callTask ​​(A)» класса «B».

Смежные вопросы