0

私はJavaプロジェクトヘルパーからこのコードを持っています。

javaProject.setRawClasspath(new IClasspathEntry[0], null);

どのようにnew IClasspathEntry[0]機能しますか?

ここに画像の説明を入力してください

  1. インターフェイスはどのように新しいものでインスタンス化されますか?
  2. [0]newの括弧の代わりに配列をどのように使用()しますか?

追加した

nullを言う方が安全だと思います。

4

2 に答える 2

2

1.新しいインターフェースはどのようにインスタンス化されますか?

いいえ、インターフェースをインスタンス化することはできません。

2. newで括弧()の代わりに配列[0]をどのように使用しますか?

IClasspathEntry[0]IClasspathEntry(well, asubtype of IClasspathEntry)は、配列のインデックス0にあるタイプの要素にすぎません。インターフェイスをインスタンス化することはできません。

IClasspathEntry[] arr = new IClasspathEntry[size];

上記は、要素を受け入れる型の配列を作成するだけです。IClasspathEntrysubtypes(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;
    }
}
于 2012-12-18T21:15:28.597 に答える
1

インターフェイスはどのように新しいものでインスタンス化されますか?

new IClasspathEntry[0]array objectインターフェースを作成していて、インスタンス化していない。new int[4]プリミティブint型をインスタンス化しないのと同じように、長さ4の配列オブジェクトを作成します。

newで括弧()の代わりに配列[0]をどのように使用しますか?

配列(長さ0の配列)を作成しているので有効です。

このような配列を作成して、さまざまな実装クラスの複数のインスタンスを追加できるようにします。

IClasspathEntry[] arr = new IClasspathEntry[2];
arr[0] = // instance of class implementing IClasspathEntry
于 2012-12-18T21:13:45.560 に答える