Существует ли динамический тип объекта для ссылок, поступающих из разных классов? - PullRequest
0 голосов
/ 19 октября 2011

Хорошо, у меня есть два класса, первый из которых называется Class1 , а второй - Class2 . Поэтому я хочу отправить ссылку Class1 в Class2 . Для этого мне нужны такие коды:

Class1:

public class Class1 extends Activity {
    /** Called when the activity is first created. */
    public int Var1 = 5;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new Class2(this));
    }
}

public class Class2 extends SurfaceView {
    Class1 Obj1;               //Here!
    public Class2(Class1 Obj){ //And here I don't want to
                               //Use Class1 as a type.
                               //Is there any Global type?
        this.Obj1 = Obj;
    }
    public void EditVar1(){
        Obj.Var1 = 10;
    }
}

Чтобы взять ссылку Class1 : я должен использовать тип объекта как Class1 . Я хочу использовать эти коды в более чем одном проекте: поэтому я должен отредактировать тип Obj"Class1" для каждого проекта, если их имя основного класса отличается. Есть ли здесь глобальный тип для использования? Также я попытался использовать Context как тип объекта с этим, я не могу достичь Var1. Во всяком случае, я не знаю, что это тоже. Если кто-то может объяснить, что это, я буду благодарен. Спасибо за любые ответы!

1 Ответ

0 голосов
/ 19 октября 2011

Их ближайшим предком в этом случае является java.lang.Object, как и все классы Java. Для Activity его родителем является контекст, как вы пытались использовать. Если затем вы хотите получить доступ к определенным свойствам и методам, которые есть у Activity, которых нет у ее родителя, вы должны привести объект. E.g.:

Class1 obj1;
public Class2(Activity obj) {
    this.obj1 = (Class1) obj;
}

Если вы сохраняете ссылку на суперкласс вместо производного класса и назначаете производный объект объекту суперкласса, вы теряете определенные свойства производного. Это известно как обрезка объектов .

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