Java默认构造函数没有初始化

标签 java constructor default super

我有一个与下面的类类似的类,其中包含所有静态方法。因此,该类在其他类中使用时未初始化。在调用此类中的任何静态方法之前,我必须检查条件。即使我添加默认构造函数,它也不会被调用。有人可以建议一些想法来解决这个问题,而无需在其所有用法中实例化此类吗?它需要一个默认构造函数,可以是一个简单的其他解决方案。

每次调用电话之前我都需要检查网络连接。静态初始化程序仅在第一次加载时被调用。

        public class ABCServerUtil {

        public static boolean checkServer() {...bla...bla...}


        }

我需要调用下面的代码并退出。

        public ABCServerUtil(){
        if(!isNetworkOnline())
        return;
        }

最佳答案

如果您需要每次调用其中一个静态方法时检查条件,您没有太多选择,只能做您正在做的事情:调用一个方法来进行检查在每个方法的开头。

如果您只需要在类最初加载/初始化时检查一次条件,则可以使用 static initializer :

public class ABCServerUtil {

    static {
        // Code here runs when the class is loaded
    }

    // ...
}

关于Java默认构造函数没有初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28805580/

相关文章:

java - 启动另一个 Activity 以查看文件时 Activity 被破坏

java - 如果选择该按钮来更改文本大小

对象的 Javascript 原型(prototype)继承和链接构造

c++ - 为什么允许在初始化列表中从 const 指针到 const 转换为 const 指针到非常量

c++ - 为什么我的默认构造函数返回一个 boolean 值?

jQuery Datepicker - 如何获取/读取默认设置

java - 如何将可执行JAR文件打包成EXE

java - 自动装箱 0 到通用数字

javascript - 更改默认滚动条行为

ios - 我如何在我的应用程序中实现一个按钮,以便每次用户按下它时,整个应用程序的默认颜色都会改变