对实用程序类做的常见事情是givethemaprivateconstructor:publicfinalclassUtilClass{privateUtilClass(){}...}但不幸的是,有些工具不喜欢那个私有(private)构造函数。他们可能会警告它从未在类中被调用,它未被测试覆盖,该block不包含注释等。如果你这样做,很多警告就会消失:publicenumUtilClass{;...}我的问题是:除了对future开发者的无休止的仇恨之外,在Java中没有值的枚举和具有私有(private)构造函数的类之间有什么重要区别?请注意,我不是在问What'stheadvanta
对实用程序类做的常见事情是givethemaprivateconstructor:publicfinalclassUtilClass{privateUtilClass(){}...}但不幸的是,有些工具不喜欢那个私有(private)构造函数。他们可能会警告它从未在类中被调用,它未被测试覆盖,该block不包含注释等。如果你这样做,很多警告就会消失:publicenumUtilClass{;...}我的问题是:除了对future开发者的无休止的仇恨之外,在Java中没有值的枚举和具有私有(private)构造函数的类之间有什么重要区别?请注意,我不是在问What'stheadvanta
考虑下面的类层次结构。classClassA{privatevoidhello(){System.out.println("HellofromA");}}interfaceMyinterface{defaultvoidhello(){System.out.println("HellofromInterface");}}classClassBextendsClassAimplementsMyinterface{}publicclassTest{publicstaticvoidmain(String[]args){ClassBb=newClassB();b.hello();}}运行程序会报
考虑下面的类层次结构。classClassA{privatevoidhello(){System.out.println("HellofromA");}}interfaceMyinterface{defaultvoidhello(){System.out.println("HellofromInterface");}}classClassBextendsClassAimplementsMyinterface{}publicclassTest{publicstaticvoidmain(String[]args){ClassBb=newClassB();b.hello();}}运行程序会报
把private和final加到同一个方法里是不是多余?classSomeClass{//--snip--privatefinalvoiddoStuff(){//privateworkhere}}如果它是private,那么任何人都无法覆盖它,对吧?final关键字没有效果,为什么还要加?(或者我错过了什么?) 最佳答案 基本上,这是允许的,因为他们觉得设置一个特殊情况来禁止private修饰符是不值得的。就像您可以将接口(interface)上的方法声明为public,或者将接口(interface)中的嵌套类声明为static,
把private和final加到同一个方法里是不是多余?classSomeClass{//--snip--privatefinalvoiddoStuff(){//privateworkhere}}如果它是private,那么任何人都无法覆盖它,对吧?final关键字没有效果,为什么还要加?(或者我错过了什么?) 最佳答案 基本上,这是允许的,因为他们觉得设置一个特殊情况来禁止private修饰符是不值得的。就像您可以将接口(interface)上的方法声明为public,或者将接口(interface)中的嵌套类声明为static,
这个问题在这里已经有了答案:Howtoaddtestcoveragetoaprivateconstructor?(18个回答)关闭5年前。如果一个类包含一堆静态方法,为了确保没有人错误地初始化这个类的实例,我做了一个私有(private)构造函数:privateUtils(){}现在..既然看不到构造函数,怎么能测试呢?这可以被测试覆盖吗? 最佳答案 使用反射,您可以调用私有(private)构造函数:Constructorc=Utils.class.getDeclaredConstructor();c.setAccessible(
这个问题在这里已经有了答案:Howtoaddtestcoveragetoaprivateconstructor?(18个回答)关闭5年前。如果一个类包含一堆静态方法,为了确保没有人错误地初始化这个类的实例,我做了一个私有(private)构造函数:privateUtils(){}现在..既然看不到构造函数,怎么能测试呢?这可以被测试覆盖吗? 最佳答案 使用反射,您可以调用私有(private)构造函数:Constructorc=Utils.class.getDeclaredConstructor();c.setAccessible(
假设我们有以下代码:classTest{privateTest(){System.out.println("test");}}publicclassOneextendsTest{One(){System.out.println("One");}publicstaticvoidmain(Stringargs[]){newOne();}}当我们创建一个对象One时,它最初被称为父类构造函数Test()。但由于Test()是私有(private)的-我们得到一个错误。一个很好的例子和摆脱这种情况的方法是多少? 最佳答案 没有出路。您必须创
假设我们有以下代码:classTest{privateTest(){System.out.println("test");}}publicclassOneextendsTest{One(){System.out.println("One");}publicstaticvoidmain(Stringargs[]){newOne();}}当我们创建一个对象One时,它最初被称为父类构造函数Test()。但由于Test()是私有(private)的-我们得到一个错误。一个很好的例子和摆脱这种情况的方法是多少? 最佳答案 没有出路。您必须创