@Override
public void onIrEvent(IREvent e) {
// TODO Auto-generated method stub
}
ardrone.addAttitudeUpdateListener(new AttitudeListener() {
@Override
public void attitudeUpdated(float pitch, float roll, float yaw, int altitude) {
System.out.println("altitude : " + altitude);
}
});
我想从第二个构造函数中获取变量高度,并在第一个构造函数中使用它。我试图直接使用它,它没有工作。我也尝试在第一个构造函数中构造第二个构造函数,但也没有工作。任何想法?
之前感谢
答案 0 :(得分:1)
创建一个实现AttitudeListener
的新类。使用altitude
的setter和getter方法设置实例变量altitude
,并在第一个和第二个构造函数中相应地使用它。
示例:在AttitudeListenerImpl.java
中class AttitudeListenerImpl implements AttitudeListener
{
private int altitude;
public void setAltitude(int altitude)
{
this.altitude = altitude;
}
public int getAltitude()
{
return this.altitude;
}
@Override
public void attitudeUpdated(float pitch, float roll, float yaw, int altitude)
{
setAltitude(altitude);
System.out.println("altitude : " + altitude);
}
}
在其他代码中的用法:
AttitudeListener alti = new AttitudeListenerImpl();
alti.attitudeUpdated(1.0f,1.0f,1.0f,1);
ardrone.addAttitudeUpdateListener(alti);
@Override
public void onIrEvent(IREvent e)
{
// TODO Auto-generated method stub
//to get the altitude:
System.out.println("altitude : " + alti.getAltitude());
}
答案 1 :(得分:0)
我在这里看不到任何构造函数。你在谈论AttitudeListener
吗?在这种情况下,您需要创建一个实现此接口的类。
然后你可以做的是构造函数链接,比如:
public class MyAttitudeListener implements AttitudeListener
{
public MyAttitudeListener()
{
this(3); // this is like new MyAttitudeListener(3);
}
public MyAttitudeListener(int altitude)
{
// do some work
}
}
你能进一步解释一下你想要实现的目标吗?