相关疑难解决方法(0)

我什么时候想让我的私有类静态?

一般来说,将私有类声明为静态是否有任何好处?

在什么情况下我想使用以下哪一个而不是另一个?

private static class Foo
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

VS

private class Foo
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

java static private class

57
推荐指数
3
解决办法
4万
查看次数

如何创建实用程序类?

我想创建一个带有实用程序方法的类

public class Util {

   public static void f (int i) {...}

   public static int g (int i, int j) {...}

}
Run Code Online (Sandbox Code Playgroud)

哪个是创建实用程序类的最佳方法?

我应该使用私有构造函数吗?

我应该为抽象类创建实用程序类吗?

我什么都不做?

java utility utility-method

50
推荐指数
4
解决办法
9万
查看次数

在私有实用程序类构造函数中使用的首选Throwable是什么?

Effective Java(第二版),第4项,讨论使用私有构造函数来强制执行非实例化.这是本书中的代码示例:

public final class UtilityClass {
    private UtilityClass() {
        throw new AssertionError();
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,AssertionError似乎不是正确的抛出.没有任何东西被"断言",这就是API如何定义AssertionError的使用.

Throwable在这种情况下,通常会有不同的情况吗?通常只会抛出一个Exception带有消息的将军吗?或者为此编写自定义是否常见Exception

这是非常微不足道的,但我认为从形式和标准的角度来看,我只是对它感到好奇.

java coding-style throwable

27
推荐指数
3
解决办法
6096
查看次数

为什么有些类在创建实例时不需要"New"这个词?

我是Java新手.有一件事让我困惑的是为什么有些类需要new实例化,以及为什么其他类不需要实例new化.

例如,我正在查看log4j,它不需要new.

// get a logger instance named "com.foo"
Logger  logger = Logger.getLogger("com.foo");
logger.setLevel(Level.INFO);
Run Code Online (Sandbox Code Playgroud)

为什么其他一些课程需要新课程?例如,Employee类:

Employee X = new Employee (John);
X.getwork();
Run Code Online (Sandbox Code Playgroud)

等等

为什么我们不说,Logger logger = new Logger(...);?为什么是我们能够使用它,即使没有newlogger.setLevel()等.

java class instance

6
推荐指数
2
解决办法
3392
查看次数

静态方法和字段是否在定义它们的类的实例中占用内存?

例如,如果我要创建以下类:

public Class ExampleClass {
  
  private static String field1;
  private String field2;

  public ExampleClass(String field2) {
    this.field2 = field2;
  }

  public static staticMethodExample(String field1) {
    this.field1 = field1;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我要创建一个ExampleClass. 该实例是否包含我创建的静态方法和/或字段的代码?

我有一个对象将代表我数据库中一行的一些数据。我想从数据库中的每一行创建这些对象的列表。数据库有数千行。我正在创建的静态方法将在将数据库中的值放入对象构造函数之前对其进行格式化。

我不想通过将方法存储在对象的每个实例中来膨胀代码。因此,如果静态方法确实占用了对象的每个实例中的空间,那么我宁愿创建一个名为ExampleClassBuilder. 并将格式化静态方法放在那里。

java static static-methods

6
推荐指数
2
解决办法
458
查看次数

可以在java中将类实例化为静态吗?

可能重复:
Java:静态类?

可以在java中将类实例化为静态吗?

static class c1(){

}
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?我对这个以及非静态内容的内存映射感到困惑.请帮忙

java

5
推荐指数
2
解决办法
6250
查看次数

Java中的静态类有什么用?

我已经读过我可以定义一个类static,但我不明白为什么我可能需要这样做.静态类有什么用?我什么时候需要使用它们?我会很感激的例子.

java static class

2
推荐指数
1
解决办法
1186
查看次数