0

GWT コンパイラーによって無視されるコードを作成する方法を探しています。たとえば、特定のメソッドは GWT で使用できないクラスを使用するため、無視する必要があります。

これらのメソッドに @Attribute マジックでフラグを立てたり、コンパイル中にコードを削除したりすることは可能ですか? いずれにせよ、GWT プラットフォームで実行する場合、コードにアクセスすることはありませんが、このコードを JVM で実行/テストする場合は、そこにあると非常に便利です。

私はいくつかのダミークラスを書くことができることを知っています (実際、私はすでにそれを行っています)。それでも私はもっと簡単な方法を探しています。また、一部のクラスではダミーを作成できません。これは、GWT には System などのクラスが既にありますが、機能の小さなサブセットしかサポートしていないためです。

4

2 に答える 2

2

メソッドレベルではありません。ただし、ソース パッケージ内の特定のクラスを除外することはできます。

<source path="client">
  <exclude name="XMLNamespaceContext.java"/>
  <exclude name="XMLUtils.java"/>
  <!-- exclude test classes, they always end with Test.java -->
  <exclude name="**/*Test.java" />
</source>
于 2012-06-13T13:57:01.417 に答える
1

たとえば、あなたのようなクラスがいくつかあります

private DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd");

SimpleDateFormat クラスは GWT クラスではなく、赤で下線が引かれ、指し示すと次のように表示されます: Class 'java.text.DateFormat' is not present in JRE Emulation Library so it cannot be used in client code but my test run with問題はありません。これは、私のプロジェクト構造と私のプロジェクトのテスト クラスの 1 つの写真です。ここに画像の説明を入力

とにかく、gwt.xml で宣言するものはすべて、宣言されたパッケージ内のクラスが GWT エミュレーションを持っているかどうかをチェックしますが、テストは JVM 環境で実行されるため、GWT エミュレーションを持たないクラスは気にしません。しかし、GWTTestcase を使用すると、GWTTestcase がブラウザーを起動し、テストを環境ブラウザーの下に置くため、状況が異なります。この問題を回避するには、MVP パターン設計を使用します。MVP1

MVP2 . あなたの幸運を祈ります

于 2012-06-13T06:33:00.760 に答える