6

ドキュメントを読んでいるときに、そのViewHolderが静的クラスである場所をいくつか読みましたが、静的クラスで新しくする必要がありますか? その例では、彼らはそれで新しいことをしましたか?しかし、概念によれば、静的クラスで新しいことを行うべきではありませんか?

4

3 に答える 3

2

クラスを構築できるのは、次の 4 つの方法のみです。

  1. 「新しい」の使い方
  2. Class.newInstance を使用する
  3. 内部で new を使用して新しいインスタンスを作成するメソッド / ファクトリを使用する
  4. サポートされている場合は、object.clone を使用する

1 と 3 が最も多く使用されています。

于 2012-04-21T14:13:52.857 に答える
1

クラスを静的と呼ぶことは、通常、クラスをインスタンス化する必要がないことを意味するため、実際には最良の表現ではありません。しかし、それはあなたの質問によって与えられていないので、最初に議論する必要がある文脈にも依存するかもしれません.

于 2012-04-21T14:19:02.000 に答える
1

これはそれをよく説明しています

ネストされたクラスのインスタンスを作成するためのセマンティクスは、混乱を招く可能性があります。以下は、ネストされた static クラスと内部クラスを定義する単純なクラスです。各インスタンス クラスのインスタンスが作成される main メソッドに特に注意してください。

 // creating an instance of the enclosing class 
 NestedClassTip nt = new NestedClassTip();


 // creating an instance of the inner class requires 
 // a reference to an instance of the enclosing class 
 NestedClassTip.NestedOne nco = nt.new NestedOne();


 // creating an instance of the static nested class 
 // does not require an instance of the enclosing class 
 NestedClassTip.NestedTwo nct = new NestedClassTip.NestedTwo();



public class NestedClassTip {
private String name = "instance name";
private static String staticName = "static name";

public static void main(String args[]) {
    NestedClassTip nt = new NestedClassTip();

    NestedClassTip.NestedOne nco = nt.new NestedOne();

    NestedClassTip.NestedTwo nct = new NestedClassTip.NestedTwo();
}

class NestedOne {
    NestedOne() {
        System.out.println(name);
        System.out.println(staticName);
    }
}

static class NestedTwo {
    NestedTwo() {
        System.out.println(staticName);
    }
} }

ネストされたクラスは混乱を招く可能性がありますが、その目的を理解し、セマンティクスに慣れれば、それほど多くはありません。ネストされたクラスの詳細について知りたい場合は、Java 言語仕様を調べてください。

于 2012-04-21T14:20:23.290 に答える