// **已解决** //
我发现(正如2人提到的那样 - 可以访问内部类到外部类的内容。我必须做错其他的事情,因为我无法访问它
// **已解决** //
我正在使用Phillips Hue API(http://www.developers.meethue.com/documentation/java-sdk-getting-started) 它带有一些听众,但我认为我之前在java中看过这样的结构......
我不想回答如何使用这个API - 一般来说,这个听众的语法是如何工作的。
在fields区域中,定义了带方法的监听器:
public class someClass {
private int someVariable;
private PHSDKListener listener = new PHSDKListener() {
@Override
public void onBlablabla(Object something) {
// how do i do stuff to an someClass object from here??
}
};
public someClass() {
// constructor
}
private void someMehtod() {
// a standard method that i am used to.
}
}
我的问题:这个监听器方法onBlablabla
就像它不在它所在的类的一部分 - 它无法访问类中的变量和方法 - 所以我怎么能使用这个监听器方法,当我能不能访问任何东西/存储班级中的任何数据。
答案 0 :(得分:0)
我很确定你可以访问外层课程。例如,从onBlablabla()...中调用someMethod()应该没问题。
答案 1 :(得分:0)
很难判断你究竟想要做什么,但通常从内部类中,你可以直接使用他们的名字来访问外部类的成员变量和方法(包括私有的),如果你想成为更具体,使用parentClass.this
表示法,所以在你的情况下:
Public class someClass {
private int someVariable;
private PHSDKListener listener = new PHSDKListener() {
@Override
public void onBlablabla(Object something) {
int localVar1 = someVariable; //this will work
int localVar2 = someClass.this.someVariable; //this will also work
}
};
public someClass() {
// constructor
}
private void someMehtod() {
// a standard method that i am used to.
}
}