Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在静态类上初始化?_Java_Static - Fatal编程技术网

Java 在静态类上初始化?

Java 在静态类上初始化?,java,static,Java,Static,如果我有一个带有静态方法的helper类,如何才能最好地进行一些初始化 public class MyClass { //init a properties file { properties.load(..) } public static String getStringFromProperty(String name); return properties.getProperty(name); } } 有比静态代码块更好的初始化方

如果我有一个带有静态方法的helper类,如何才能最好地进行一些初始化

public class MyClass {

   //init a properties file
   {
     properties.load(..)
   }

   public static String getStringFromProperty(String name);
       return properties.getProperty(name);
   }
}
有比静态代码块更好的初始化方法吗?

您可以使用一个允许您将类设计为普通类的方法。在本例中,您将在构造函数中进行初始化。如果您在应用服务器下运行,您还可以提供静态服务(例如DAOs)

要知道的第一件事;此函数只能调用静态方法和 类的属性

所以最好将属性声明为静态

公共静态字符串getStringFromProperty(字符串名称); 返回properties.getProperty(名称); }

像这样试试

静态初始值设定项块
在加载类时初始化属性

public class MyClass {


  static
        {
          properties.load(..)
        }

   public static String getStringFromProperty(String name);

       return properties.getProperty(name);
   }
}

您可能应该在该块前面有一个
static
,我想静态块是一种更好的方式。如果你有静态变量,而不是方法,你可以这样做。它必须在静态块中。否则,除非创建MyClass的实例,否则不会加载属性。