4

パッケージレベルで利用可能なメソッドを書くことは可能ですか? fooパッケージであると仮定します:

long version = foo.getPackageVersion();
4

4 に答える 4

6

概念的には scala でこれを行うことができますが、これらのパッケージ レベルのメソッドとオブジェクトを格納するためのクラスが作成されます。

パッケージ レベルの javadoc を作成して注釈を追加することはできますが、フィールド、コンストラクター、またはメソッドを追加することはできません。

package-info.javaパッケージ内と呼ばれるファイル内mypackage

/**
 * Javadoc comments for package {@code mypackage}.
 */
@PackageVersion(getPackageVersion = "1.2.3")
package mypackage;

@Retention(RetentionPolicy.RUNTIME)
public @interface PackageVersion {
    String getPackageVersion();
}

Package mypackage = Package.getPackage("mypackage");
PackageVersion version = mypackage.getAnnotation(PackageVersion.class);
System.out.println("Package version: "+version.getPackageVersion());

版画

Package version: 1.2.3

この機能はJSR-175で追加されました

于 2012-08-15T21:18:33.980 に答える
6

いいえそうではありません。メソッドはクラスでのみ定義できます。他にはありません。

パッケージは物理的ではありません。バイト コードのコンテナーとして機能することはできません。パッケージは、クラス、列挙型、およびインターフェイスの名前空間に他なりません。

于 2012-08-15T21:16:39.263 に答える
0

いいえ。パッケージ自体をオブジェクトまたはクラスにすることはできません。クラスだけがメソッドを持っています。

于 2012-08-15T21:17:26.207 に答える
0

Java メソッド/操作では、クラス内にある必要があります。クラスの外にメソッドを追加しようとすると、コンパイラが文句を言います。

于 2012-08-15T21:17:44.570 に答える