草庐IT

Super_VLAN

全部标签

java - 不允许在 Java 方法覆盖上使用父类(super class)型的原因是什么?

编译器认为以下代码无效:classFoo{voidfoo(Stringfoo){...}}classBarextendsFoo{@Overridevoidfoo(Objectfoo){...}}我认为这在JLS8.4.8.1中有所描述。:“m1的签名是m2签名的子签名(第8.4.2节)。”而在8.4.2中:“对应类型变量的边界是相同的”。我的问题是:为什么子类型(Bar)中的参数不能是父类(superclass)型(Foo)中参数的父类(superclass)型。在示例中,Object是String的父类(superclass)型。据我所知,允许这样做不会违反LiskovSubstit

java - 调用 super 构造函数时尝试资源

在构造函数中打开InputStream然后将其传递给super构造函数时,有什么好的方法可以使用try-with-resources吗?基本上我想做的是这样的:publicclassA{publicA(InputStreamstream){//Dosomethingwiththestreambutdon'tcloseitsincewedidn'topenit}}publicclassB{publicB(Filefile){//Weopenthestreamsoweneedtoensureit'sproperlyclosedtry(FileInputStreamstream=newFil

Java:如何从内部就地类调用 super 方法

我有基类Foo和方法spam和覆盖spam的类Bar。我需要在一些就地定义的回调对象的方法中调用基类的spam:publicclassFoo{publicvoidspam(){//...}}publicclassBarextendsFoo{@Overridepublicvoidspam(){objectWhichRequireCallback(newCallback{@OverridepublicvoidonCallback(){super.spam();}});}}此代码不起作用,因为super与Callback相关,而不是Bar类。是否可以从就地定义的对象调用super方法?

java - super() 方法有什么作用?

super方法有什么作用?publicDataFetch(Contextcontext){super();this.ctx=context;}这个构造函数是否使新创建的对象的上下文成为父类(superclass)的上下文?不是100%确定这是如何工作的。那么super()方法本质上只是说“让我进入父类(superclass)模式”,用外行的话来说吗? 最佳答案 它通过调用其默认构造函数来表示“在初始化我之前初始化我的父类”。 关于java-super()方法有什么作用?,我们在Stack

java - 在 Java 构建路径上找不到父类(super class) "javax.servlet.http.HttpServlet"

我是一个初学者,正在学习spring和hibernate(在项目中使用maven)并且遇到了这个问题并被困在这里。试图找到解决方案,但最终无处可去。请帮忙。非常感谢错误:“找不到”http://java.sun.com/jsp/jstl/core的标记库描述符"代码:尝试了Thesuperclass"javax.servlet.http.HttpServlet"wasnotfoundontheJavaBuildPath中给出的解决方案HowdoIimportthejavax.servletAPIinmyEclipseproject?错误仍然存​​在pom.xml4.0.0com.jou

java - 抽象父类(super class)中的通用 @Inject 字段

考虑一组类似于MVP的类型。存在一个带有View接口(interface)的抽象Presenter:publicinterfaceView{//...}publicabstractclassAbstractPresenter{@InjectVview;//...}然后,让我们有一个具体的具体演示者子类,它的View接口(interface)和实现:publicinterfaceLoginViewextendsView{//...}publicLoginPresenterextendsAbstractPresenter{//...}publicclassLoginViewImplimpl

java - 如何从 Eclipse 以 super 用户身份运行我的应用程序?

当我尝试从Eclipse运行服务器应用程序时遇到错误。错误是java.net.BindException:Permissiondenied。我认为这是因为我使用端口443来建立SSL连接。如果我使用java和sudo在命令行上运行我的代码,我可以解决这个问题。有没有办法设置Eclipse,以便当我点击运行按钮时,我的应用程序使用sudo执行? 最佳答案 您可以按照以下步骤以super用户身份编译/调试应用程序。重命名您的java应用程序sudomv/usr/lib/jvm/java-6-openjdk/jre/bin/java/us

java - Java中的 super 关键字,有趣的行为,请解释

假设我们有以下代码:classA{publicvoiddoLogic(){System.out.println("doLogicfromA");}}classBextendsA{@OverridepublicvoiddoLogic(){System.out.println("doLogicfromB");}publicvoiddoDifferentLogic(){System.out.println("doDifferentLogicfromB");super.doLogic();}}classCextendsB{@OverridepublicvoiddoLogic(){System.

java - 将子类传递给方法但将父类(super class)作为参数?

我有一个抽象类Vehicle有2个已实现的子类RedVehicle和YellowVehicle.在另一个类(class)我有一个List包含两个子类的实例。我希望能够将一个类类型传递给一个方法,然后使用该类型来决定我想要在List中对哪组对象做某事。.自从Class是通用的我应该用一些东西参数化它,但是把参数作为父类Vehicle停止调用代码从exampleMethod开始工作现在期待一种Vehicle,而不是RedVehicle的子类或YellowVehicle.我觉得应该有一种干净的方法来做到这一点,那么实现该功能的正确方法是什么?n.b.我不一定要传入Class输入,如果有更好的

java - 构造函数中的 super()

我正在阅读一些代码。在构造函数中它有super()但该类实现了当然没有构造函数的接口(interface)。那么它指的是哪个super()呢?publicclassBoundingBoximplementsIBoundingVolume{publicBoundingBox(){super();mTransformedMin=newNumber3D();mTransformedMax=newNumber3D();mTmpMin=newNumber3D();mTmpMax=newNumber3D();mPoints=newNumber3D[8];mTmp=newNumber3D[8];mM