我有来自Java 项目助手的这段代码。
javaProject.setRawClasspath(new IClasspathEntry[0], null);
如何new IClasspathEntry[0]
运作?
- 如何用 new 实例化接口?
- 如何使用数组
[0]
而不是()
新的括号?
添加
我认为这是一种更安全的说法 null。
我有来自Java 项目助手的这段代码。
javaProject.setRawClasspath(new IClasspathEntry[0], null);
如何new IClasspathEntry[0]
运作?
[0]
而不是()
新的括号?我认为这是一种更安全的说法 null。
1.如何用new实例化一个接口?
不,永远不能实例化接口。
2.如何用数组[0]代替括号()和new?
IClasspathEntry[0]
只是IClasspathEntry(well, asubtype of IClasspathEntry)
数组中索引为零的类型元素。你不能实例化一个接口。
IClasspathEntry[] arr = new IClasspathEntry[size];
以上只是创建了一个接受元素的类型数组。IClasspathEntry
subtypes(class's which implement IClasspathEntry)
interface IClasspathEntry {}
class Xyz implements IClasspathEntry {}
class main
{
public static void main(String...args)
{
IClasspathEntry[] arr = new IClasspathEntry[1];
IClasspathEntry inst = new Xyz();
arr[0] = inst;
}
}
如何用 new 实例化接口?
new IClasspathEntry[0]
正在创建一个array object
而不是实例化您的界面。就像new int[4]
不实例化原始 int 类型,而是创建一个长度为 4 的数组对象。
如何用数组[0]代替括号()和new?
它是有效的,因为它正在创建一个数组 - 一个 0 长度的数组。
您可以像这样创建一个数组,以便您可以添加添加到其中的不同实现类的多个实例。
IClasspathEntry[] arr = new IClasspathEntry[2];
arr[0] = // instance of class implementing IClasspathEntry