无法实例化TYPE

时间:2014-05-02 12:52:56

标签: android interface instantiation live-wallpaper

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

其他类的实现和接口的类

public class Renderer implements GLWallpaperService.Renderer {

    public Renderer(Context context) {

    }

}

我的GLWallpaperService类:

public abstract class GLWallpaperService extends WallpaperService {  

     public static interface Renderer extends GLSurfaceView.Renderer {
     }
}

我收到错误的类(无法实例化类型GLWallpaperService.Render)错误位于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);
        }
}

1 个答案:

答案 0 :(得分:1)

该行

renderer = new Renderer(glwallpaperservice);

正在尝试使用渲染器界面,而不是类。接口无法实例化,因此错误。限定班级名称应该足够了:

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

无论如何,如果接口和类名不同,那就更好了。