我正在尝试实例化一个实现接口的类的实例。但不知何故,我无法做到这一点。我知道你不能直接实例化一个接口。但是,如果像我所做的那样在另一个类中实现它,就可以这样做。我做错了什么。
实现和接口另一类的类
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);
无论如何,作为一个建议,如果接口和类名不同会更好。