在Java中,有没有办法在super构造函数运行之前初始化一个字段?即使是我能想到的最丑陋的hack也会被编译器拒绝:classBase{Base(StringsomeParameter){System.out.println(this);}}classDerivedextendsBase{privatefinalinta;Derived(StringsomeParameter){super(hack(someParameter,a=getValueFromDataBase()));}privatestaticStringhack(StringreturnValue,intignore
在Java中,有没有办法在super构造函数运行之前初始化一个字段?即使是我能想到的最丑陋的hack也会被编译器拒绝:classBase{Base(StringsomeParameter){System.out.println(this);}}classDerivedextendsBase{privatefinalinta;Derived(StringsomeParameter){super(hack(someParameter,a=getValueFromDataBase()));}privatestaticStringhack(StringreturnValue,intignore
关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestionsuper关键字在Java中的含义和用法是什么? 最佳答案 super是Java中的关键字。它指的是直系parent的属性(property)。super()//refersparent'sconstructorsuper.getMusic();//referstotheparent'smethod-ReadMoreonsuper
关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestionsuper关键字在Java中的含义和用法是什么? 最佳答案 super是Java中的关键字。它指的是直系parent的属性(property)。super()//refersparent'sconstructorsuper.getMusic();//referstotheparent'smethod-ReadMoreonsuper
我想重构一些目前由一个父类(superclass)和两个子类组成的代码。这些是我的类(class):publicclassAnimal{inta;intb;intc;}publicclassDogextendsAnimal{intd;inte;}publicclassCatextendsAnimal{intf;intg;}这是我当前的代码:ArrayListlistAnimal=newArrayList();if(condition){Dogdog=newDog();dog.setA(..);dog.setB(..);dog.setC(..);dog.setD(..);dog.setE
我想重构一些目前由一个父类(superclass)和两个子类组成的代码。这些是我的类(class):publicclassAnimal{inta;intb;intc;}publicclassDogextendsAnimal{intd;inte;}publicclassCatextendsAnimal{intf;intg;}这是我当前的代码:ArrayListlistAnimal=newArrayList();if(condition){Dogdog=newDog();dog.setA(..);dog.setB(..);dog.setC(..);dog.setD(..);dog.setE
因此,在Java中,构造函数的第一行必须是对super的调用……无论是隐式调用super(),还是显式调用另一个构造函数。我想知道的是,为什么我不能在它周围放一个tryblock?我的具体情况是我有一个模拟类进行测试。没有默认构造函数,但我想要一个使测试更易于阅读。我还想将构造函数抛出的异常包装到RuntimeException中。所以,我实际上想要做的是:publicclassMyClassMockextendsMyClass{publicMyClassMock(){try{super(0);}catch(Exceptione){thrownewRuntimeException(e)
因此,在Java中,构造函数的第一行必须是对super的调用……无论是隐式调用super(),还是显式调用另一个构造函数。我想知道的是,为什么我不能在它周围放一个tryblock?我的具体情况是我有一个模拟类进行测试。没有默认构造函数,但我想要一个使测试更易于阅读。我还想将构造函数抛出的异常包装到RuntimeException中。所以,我实际上想要做的是:publicclassMyClassMockextendsMyClass{publicMyClassMock(){try{super(0);}catch(Exceptione){thrownewRuntimeException(e)
我已经使用spring-mvc和mongodb作为数据库构建了一个Web应用程序。我使用maven3构建应用程序。项目构建成功,但是当应用程序启动时,我在日志中收到以下错误,因为我的应用程序没有启动。这曾经在几个月前有效。Causedby:java.lang.IncompatibleClassChangeError:classorg.springframework.core.type.classreading.ClassMetadataReadingVisitorhasinterfaceorg.springframework.asm.ClassVisitorassuperclass如果
我已经使用spring-mvc和mongodb作为数据库构建了一个Web应用程序。我使用maven3构建应用程序。项目构建成功,但是当应用程序启动时,我在日志中收到以下错误,因为我的应用程序没有启动。这曾经在几个月前有效。Causedby:java.lang.IncompatibleClassChangeError:classorg.springframework.core.type.classreading.ClassMetadataReadingVisitorhasinterfaceorg.springframework.asm.ClassVisitorassuperclass如果