我有这个麻烦。我正在使用一些库,我需要创建一个接口类的istance。
this.createITextArea()
,它将创建对象。ITextArea area = new ITextArea()
我不能,因为这个课是抽象的。事实上,我需要发送一个功能。但是第一种方法我不能,或者我不知道如何获得该类的变量。我怎么能通过呢?
我需要像area=this.createITextArea()
这样的东西,所以我可以在函数中使用变量区域......
希望问题很明确......
答案 0 :(得分:4)
这有什么问题:
ITextArea area = this.createITextArea();
答案 1 :(得分:3)
尽管问题有点不清楚:
E.g:
ITextArea area = this.createITextArea();
someObj.someMeth(area);
或内联:
someObj.someMeth(this.createITextArea());
我建议进一步阅读Java接口。
答案 2 :(得分:2)
您不需要创建接口的实例。您需要创建一个实现所述接口的类的实例。查找或编写此类实现,将其实例化,然后将其分配给您的变量。
答案 3 :(得分:2)
一个类的实例从不一个接口。方法可以返回接口类型,但是通过该方法获得的“thing”始终是实现此接口的对象。
一些简单的例子来说明它:
public static main(String[] args) {
List list = createList();
}
public static List createList() {
return new ArrayList();
}
createList
方法返回一个接口类型(List
)但它返回一个真实类的实例(ArrayList
)。因此,最后,局部变量list
包含对此ArrayList
实例的引用。
回到你的例子:假设你有一个界面
public interface ITextArea { /* methods */ }
并且想要创建一个“实现此接口”的对象,然后你需要另一个类,如
public class TextArea implements ITextArea { /* methods */ }
并且您将要创建此具体类的实例。