无法实例化TYPE



我正在尝试实例化一个实现接口的类的实例。但不知何故,我无法做到这一点。我知道你不能直接实例化一个接口。但是,如果像我所做的那样在另一个类中实现它,就可以这样做。我做错了什么。

实现和接口另一类的类

public class Renderer implements GLWallpaperService.Renderer {
    public Renderer(Context context) {
    }

}

我的GLWallpaper服务类别:

public abstract class GLWallpaperService extends WallpaperService {  
     public static interface Renderer extends GLSurfaceView.Renderer {
     }
}

以及我在其中接收错误的类(无法实例化类型GLWallpaperService.RRender(错误在renderer = new Renderer(glwallpaperservice);

public class LiveWallpaperService extends GLWallpaperService {
    class Engine extends GLEngine {
        long lastTouchDown;
        private int mSampleRate;
        private Visualizer mVisualizer;
        Context mContext;
        Renderer renderer;
        public Engine(GLWallpaperService glwallpaperservice) {
            super();
            Context context;
            this.lastTouchDown = 0;
            renderer = new Renderer(glwallpaperservice);
            setRenderer(renderer);
            setRenderMode(0);
            setTouchEventsEnabled(true);
        }
}

renderer = new Renderer(glwallpaperservice);

正在尝试使用Renderer接口,而不是类。接口无法实例化,因此出现错误。限定类名就足够了:

renderer = new <your.package.name>.Renderer(glwallpaperservice);

无论如何,作为一个建议,如果接口和类名不同会更好。

最新更新