1

SourceProject と TestProject の 2 つのプロジェクトがあります。Source-Project には、次のクラスがあります。

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.i("", "normal mode");
    }
}

私のテスト プロジェクトでは、たとえば、ログ メッセージを変更/上書きしたいと考えています。もちろん、次のようにして、新しいクラスを同じパッケージ パスに配置し、クラスを次のように変更できます。

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.i("", "test mode");
    }
}

しかし、クラスにもっと多くの機能があり、この機能を (テスト クラスでも) 使用したいとしましょう。同じように名前が付けられているため、SourceProject-Class「MyActivity」を拡張することはできません。しかし、名前を「MyActivityX extends MyActivity」に変更すると、明らかにアプリケーションにコンパイルされません。

完全なソース クラスをテスト プロジェクトにコピーして、そこで変更する必要のない解決策はありますか?

4

1 に答える 1