このアプローチの利点は何ですか(私のクラスMyAdapterでStatic NESTEDクラスを使用すると、RecyclerView.Adapterが拡張されます)。
static class MyVH extends RecyclerView.ViewHolder {...}
そして、このアプローチ(メンバー内部クラスを使用):
class MyVH extends RecyclerView.ViewHolder {...}
または、パフォーマンスに影響せず、両方のアプローチを使用できますか?
Javaの質問よりもAndroidの質問です。インスタンスをクラスから取り出す場合、メモリリークを回避するために、内部クラスにstaticを使用することをお勧めします。内部クラスのメモリリークについて説明している this 素晴らしい投稿をご覧ください。
基本的にnyxの言うこと:
パフォーマンスの質問に答えるには、 this answerをご覧ください。静的なメモリは他のメモリよりもメモリを消費しませんが、再び、インスタンスをリサイクルするリサイクラについて話しているため、メモリへの影響は問題になりません。
Staticを使用することは、他のアダプターでMyVh
を再利用できることを意味します。その1つのアダプターでMyVh
のみが必要であることが確実にわかっている場合は、非静的にする必要があります。
他のアダプタで必要になる場合は、ネストされたクラスではなく、完全に別個のクラスとして作成することをお勧めします。
静的と非静的のパフォーマンスへの影響はありません!
1つのビューホルダーを多くの場所で使用する場合は、個別のクラスを作成することをお勧めします。それ以外の場合、1つの場所でのみビューホルダーを使用する場合は、非静的なネストされたビューホルダーを作成します。静的なビューホルダーは意味をなさない
ほとんどの場所で、ネストされたビューホルダークラスを使用します