我有一个构造函数如下:publicAgent(){this.name="John";this.id=9;this.setTopWorldAgent(this,"Top_World_Agent",true);}我在方法调用中遇到空指针异常。这似乎是因为我在setTopWorldAgent方法中使用“this”作为参数。通过删除此方法调用,一切看起来都很好。为什么会这样?有没有其他人遇到过这种情况? 最佳答案 您可以将其传递给方法,但setTopWorldAgent()不能是抽象的。您不能在构造函数中进行虚拟调用。在对象的构造函数中,您
这个问题在这里已经有了答案:WhenshouldIuse"this"inaclass?(17个答案)关闭7年前。据我所知,这用于以下情况:this关键字用于引用与局部变量同名的实例变量。将一个构造函数调用给同一类中的其他构造函数。将类实例作为参数传递给方法。访问外部类变量。但是我已经检查了我的项目代码,他们在getter中使用了它,例如:classa{inttime;intgetValue(){returnthis.time*5.;}}据我所知,每个对象都有自己的实例变量和方法副本,因此以这种方式返回是有意义的。请澄清。提到的Stackoverfow问题:WhenshouldIuse"
我有一个Servlet类,用于处理我不想在我拥有的每个Servlet上重复的功能。我仍在努力(即它仍然只加载index.jsp而不是其他文件)。publicclassMyServletextendsHttpServlet{publicMyServlet(){super();}publicvoidloadView(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{RequestDispatcherdispatcher=request.getRequestDisp
为什么这在Java中可行:this.getClass().getClass().getClass().getClass()...为什么会出现这种无限递归?只是好奇。 最佳答案 这里没有无限递归:getClass()返回一个java.lang.Class对象,它本身就是一个java.lang.Object对象,因此它支持getClass()方法。在第二次调用getClass()之后,无论调用getClass()多少次,您都会得到相同的结果。 关于java-为什么这在Java:this.ge
我正在研究用于OCP考试的新StreamAPI,我发现了一些我不太理解的东西。这是我的代码:voidmethodOne(){this.compare(1,2);//Thisworksfine.Stream.of(1,2,3).sorted(this::compare);//Compilationerror.}staticIntegercompare(Integers1,Integers2){return0;}这里我有一个名为compare的静态方法和一个名为compare的非静态方法。如果我从非静态方法调用比较方法,我会收到编译器警告:Themethodcompare(Integer,
我的一位同事在finallyblock中设置了对null的引用。我认为这是无稽之谈。publicSomethinggetSomething(){JDBCConnectionjdbc=null;try{jdbc=JDBCManager.getConnection(JDBCTypes.MYSQL);...}finally{JDBCManager.free(jdbc);jdbc=null;//你怎么看? 最佳答案 你是对的,jdbc是一个局部变量,所以当getSomething()方法返回时jdbc将超出范围并符合条件垃圾收集实际上与将其
背景系统订单创建成功之后需要发送订单创建成功的消息,但是今天突然遇到了如下的报错org.apache.rocketmq.client.exception.MQClientException:Norouteinfoofthistopic,TopicTestSeehttp://rocketmq.apache.org/docs/faq/forfurtherdetails.atorg.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:610)ator
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。在类C的方法m中,this.getClass()不总是C吗?
我看到一些Java示例使用this关键字来获取父类(superclass)方法。示例:this.superClassMethod()。通常情况下我们会使用super。有人可以举例说明为什么开发人员使用this而不是super吗?谢谢你。 最佳答案 this.method()和super.method()没有区别,直到method()得到在调用者的类中覆盖。例如,用classSuperClass{publicvoidmethod(){System.out.println("SuperClass");}}classSubClassext
当我尝试使用表达式value->value时,我收到一条错误消息,提示Lambda不受支持。我目前正在使用支持Lambda的1.8JDK,但我仍然遇到错误。我的猜测是它是IntelliJ13.1.4,但我并不肯定。publicstaticvoidgrades(){finalListgrade=newArrayList();intgradelistnumber=1;intinputedgrade=0;while(inputedgrade!=-1){System.out.println("EnterGradeforstudent"+gradelistnumber+"(1-50):");in