1

Tapestry 4 で書かれた、コーディングしていない Java プロジェクトに取り組んでいます。コードの例を次に示します。

@Persist
public abstract String getParentClientId();
public abstract void setParentClientId(String str);

Java に関する私の知識は限られています。私はゲッターが何かを返し、セッターが何かを設定するのを見るのに慣れています。これらのメソッドを定義するために使用される {} はありません。また、予想どおり、それらの間にコードもありません。私が見逃している慣習はありますか?おそらく getParentClientId() は暗黙のうちに ParentClientId の値などを返しますか? あなたが持っている情報は素晴らしいでしょう。ありがとう!

4

6 に答える 6

4

それらがabstract methods実装されていない理由です。抽象クラスとメソッドの詳細については、抽象メソッドに関する Oracle のドキュメントを参照してください。

抽象メソッドは、次のように、実装なしで (中かっこなしで、その後にセミコロンが続く) 宣言されるメソッドです。

abstract void moveTo(double deltaX, double deltaY);

抽象クラスがサブクラス化されると、通常、サブクラスはその親クラスのすべての抽象メソッドの実装を提供します。ただし、そうでない場合は、サブクラスも抽象宣言する必要があります。

于 2013-11-06T06:46:33.527 に答える
0

セッターとゲッターの典型的な実装は次のとおりです。

public String getParentClientId() { return parentClientId;}

public void setParentClientId(String str){ parentClientId = str;}

メソッドにabstract修飾子がある場合は、サブクラスに実装する必要があることを意味します

于 2013-11-06T06:47:51.133 に答える
0

あなたのメソッドは抽象的であり、それを実現する必要があります)

于 2013-11-06T06:48:05.530 に答える
0

メソッドは抽象として定義されているため、コードはありません。

getParentClientId() に @Persist を使用したように、いくつかのタペストリー API は、動的クラスを作成することによってこれらの抽象メソッドを実装する可能性があります。これらのメソッドがコード内で機能している場合は、これが当てはまります。

于 2013-11-06T06:48:21.620 に答える
0

私は Tapestry 4 のユーザーではありませんが、私が知る限り、Tapestry 4 では多くの抽象メソッド宣言を使用して、コーディングする必要のない機能をフックしていました (たとえば、getter/setter など)。

その後、Tapestry 4 は実行時に新しいクラスを作成します。このクラスは、クラスを継承し、宣言したいくつかの抽象メソッドを実装します (特定の Tapestry 4 規則に基づく)。

私は Tapestry 5 のユーザーです。この新しいバージョンでは、抽象メソッドはフレームワークでは必要ありません。真新しい注釈の使用を支持するこれらのまれな抽象的な宣言。

T5 に移行する時間があれば、迷わないでください。

于 2013-11-07T18:00:57.450 に答える