我正在尝试实例化一个实现接口的类的实例。但不知怎的,我无法这样做。我知道你不能直接实例化一个接口。但是,如果它像我一样在另一个类中实现,那么可以这样做。我做错了什么。
其他类的实现和接口的类
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);
}
}
答案 0 :(得分:1)
该行
renderer = new Renderer(glwallpaperservice);
正在尝试使用渲染器界面,而不是类。接口无法实例化,因此错误。限定班级名称应该足够了:
renderer = new <your.package.name>.Renderer(glwallpaperservice);
无论如何,如果接口和类名不同,那就更好了。