パッケージレベルで利用可能なメソッドを書くことは可能ですか? foo
パッケージであると仮定します:
long version = foo.getPackageVersion();
概念的には 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で追加されました
いいえそうではありません。メソッドはクラスでのみ定義できます。他にはありません。
パッケージは物理的ではありません。バイト コードのコンテナーとして機能することはできません。パッケージは、クラス、列挙型、およびインターフェイスの名前空間に他なりません。
いいえ。パッケージ自体をオブジェクトまたはクラスにすることはできません。クラスだけがメソッドを持っています。
Java メソッド/操作では、クラス内にある必要があります。クラスの外にメソッドを追加しようとすると、コンパイラが文句を言います。