6

在浏览文档时,我读到了一些 ViewHolder 是静态类的地方,但它是否需要在静态类上创建新的?在那个例子中,他们做了新的吗?但是根据概念,新的不应该在静态类上完成,对吧?

4

3 回答 3

2

您只能通过四种方式构造类:

  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

这很好地解释了它

创建嵌套类实例的语义可能会令人困惑。下面是一个简单的类,它定义了一个静态嵌套类和一个内部类。特别注意 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 回答