新手求助Java静态方法问题
我在网上看到说定义的静态方法无须实例化就可以直接调用但是在使用的时候必须要放到static块中才行,怎么回事阿?
public static synchronized void addDefaultResource(String name) {
if(!defaultResources.contains(name)) {
defaultResources.add(name);
for(Configuration conf : REGISTRY.keySet()) {
if(conf.loadDefaults) {
conf.reloadConfiguration();
}
}
}
}
package MRTest;
import org.apache.hadoop.conf.Configuration;
public class Test {
Configuration.addDefaultResource("conf-1.xml");
public static void main(String[] args) {
}
}
这样的话就报错
如果是这样的话就不报错:
package MRTest;
import org.apache.hadoop.conf.Configuration;
public class Test {
static{
Configuration.addDefaultResource("conf-1.xml");
}
public static void main(String[] args) {
}
}
java --------------------编程问答-------------------- 你这个是在执行一个函数肯定需要在函数里或者静态语句块里吧,静态方法不用实例化是说用这个方法的时候不应实列化这个类 ,可以直接类名点方法使用。你要多看点基础书籍或视频啊 --------------------编程问答-------------------- 哦 我搞明白了 多谢阿 --------------------编程问答-------------------- 或者你导入那个方法的话,类名也是可以不用打的。
当然,不推荐。 --------------------编程问答-------------------- 执行语句必须放到块或者方法中,你这里跟静态方法没关系 --------------------编程问答--------------------
正解
补充:Java , Java相关