0
@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);
        }
    });

我想从第二个构造函数中获取变量高度并在第一个构造函数中使用它。我尝试直接使用它,它没有工作。我还尝试在第一个构造函数中构造第二个构造函数,但也没有用。任何想法?

谢谢之前

4

2 回答 2

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()); 

}
于 2013-06-20T08:59:14.980 回答
0

我在这里看不到任何构造函数。你在谈论AttitudeListener吗?在这种情况下,您需要创建一个实现此接口的类。

然后你可以做的是构造函数链接,例如:

public class MyAttitudeListener implements AttitudeListener
{
    public MyAttitudeListener()
    {
        this(3); // this is like new MyAttitudeListener(3);
    }
    public MyAttitudeListener(int altitude)
    {
        // do some work
    }        
}

您能否进一步解释您正在努力实现的目标?

于 2013-06-20T09:04:22.900 回答