У меня есть некоторые проблемы с использованием ключевого слова this
. Если у меня есть пара классов, реализующих другой класс, как я могу использовать их значения, не вызывая сам класс? Я объясняю.android accessing object внутри расширенный класс
//this is my first class
public class Foo extends FooHelper{
public int fooInt;
public String fooString;
//getter/setter below
}
//this is my second class
public class Foo2 extends FooHelper{
public double fooDouble;
public float fooFloat;
}
//this is my main method, i'm using it for calling the value.
//I omit all the thrash code before.
//This is how i want to call the method:
//imagine before there are onCreate, activity,...
Foo foo = new Foo().GetFooInt();
//this is the class extended from the firsts
public class FooHelper{
public void GetFooInt(){
//here is my problem, i need to call the Foo class and the fooInt value.
//I want also to be able to edit the Foo object, for example:
if(((Foo)this).getFooInt() == 0){
(Foo) this.setFooInt(5);
}
}
}
Это то, что я хочу достичь, Acces класса, который расширяет другой класс с единственным this
ключевым словом из расширенного класса. Как мне это сделать?
EDIT:
я плохо объяснил, я думаю. Моя проблема в том, что я хочу получить доступ к моему объекту Foo внутри FooHelper, а не к методу FooHelper внутри объекта Foo.
Пример:
после того, как с помощью этого кода:
Foo foo = new Foo();
foo.HelperClassMethod();
мне нужно (в вспомогательный класс), чтобы получить доступ к объекту Foo, который вызывается его.
public HelperClass<Foo> {
public void HelperClassMethod(){
//HERE i need to use the "foo" object which invoked this method
}
}
Я добавил <Foo>
, наверное, мне не хватает его, это правильно? и как я могу использовать этот объект foo в методе из вспомогательного класса? спасибо всем
EDIT2: я полностью провалились на мой вопрос, я thinkm позволяет игнорировать этот код, и просто проверить ниже:
У меня есть доступ к объекту внутри метода расширенного класса.
У меня есть этот класс:
public class Foo extends FooToExtend{
public int fooInt;
}
класс, который распространяется на это:
public class FooToExtend{
public void MethodOne(){
//HERE i need to access the calling object
}
}
сейчас, в моей основной деятельности, я хочу сделать это:
Foo foo = new Foo();
foo.MethodOne();
Я сомневаюсь, как я могу получить доступ к foo
объекту, который я создал в основном внутри моего MethodOne
.
Я должен изменить свою FooToExtend в
public class<Foo> FooToExtend{
...
}
, но я до сих пор не знаю, как получить доступ к объекту Foo внутри него.
Helper может использоваться как статика .. возможно это будет делать лучшую работу для вас? –
'((Foo) this) .getFooInt() == null' это не сработает, вы не можете компарить' int' и 'null'. – Ramanlfc
Я, честно говоря, не знаю об этом, потому что я не эксперт в этом/супер, новичок, но который является лучшим способом доступа к классу, называемому им из Foo.extendedClassMethod? моя проблема в том, что с тех пор я должен был пройти мой вспомогательный класс, класс, с которым я хотел работать (например, представьте, что мне пришлось делать Foo.GetFooInt (Foo.class). Я хочу, чтобы этот Foo.class не передавал его как переменная –