草庐IT

this_call

全部标签

Java等待()/加入(): Why does this not deadlock?

给定以下Java代码:publicclassTest{staticprivateclassMyThreadextendsThread{privatebooleanmustShutdown=false;@Overridepublicsynchronizedvoidrun(){//loopanddonothing,justwaituntilwemustshutdownwhile(!mustShutdown){try{wait();}catch(InterruptedExceptione){System.out.println("Exceptiononwait()");}}}publicsy

java - Java 8 默认接口(interface)中 `this` 的静态类型是什么?

我正在为一个项目实现访问者模式,并意识到我可以通过让accept的默认实现如下来节省一些输入。publicinterfaceVisitable{defaultpublicvoidaccept(Visitorv){v.visit(this);}}但是,如果this的静态类型解析为Visitable,此实现将不起作用,那么在这种情况下this的静态类型是什么? 最佳答案 由于在您的上下文中,this用作参数类型,因此调用将在编译和运行时解析为Visitor#visit(Visitable)。因此,在这种情况下尝试创建默认方法不会有任何好

Java:替代传递 "this"作为构造函数参数以引用创建对象

我花了一段时间思考我所寻求的不同解决方案(我对Java还没有真正的经验),将它用于构造函数参数通常不是一个好的做法。我想做的是实例化JobGroupMod类的几个对象,对于每个JobGroupMod,我必须创建一定数量的JobMod对象,这些对象必须能够引用回生成它们的JobGroupMod对象。为了实现这一点,我将“this”传递给JobMod构造函数,但即使有效,它也不像正确的设计。publicclassJobGroupModimplementsJobGroup{publicJobGroupMod(Noden,SetclusterJobs){JobModj=newJobMod(n,

java - 在 Windows 8 上安装 Elasticsearch 5.0.2 -\config\jvm.options "was unexpected at this time"

我是StackOverflow的新手(尽管潜伏了很长时间)。我正在努力在我的笔记本电脑上安装elasticsearch。它是Windows8,我刚刚将java更新到Java8,并且我使用setJAVA_HOME设置了新路径。但是,每当我尝试在命令行上运行elasticsearch.bat文件时,我都会收到此错误:\elasticsearch-5.0.2\bin\..\config\jvm.options这时候出乎意料如有任何帮助,我们将不胜感激 最佳答案 我还尝试在我的Windows2016R2Datacenter(64位)上设置E

java - Tomcat 6 : how to delete temporary files after a web method call has ended?

我有一个临时文件,其中包含通过MTOM二进制附件作为SOAP响应的一部分返回的数据。我想在方法调用“结束”(即完成传输)后立即将其丢弃。对我来说最好的方法是什么?我能弄清楚如何执行此操作的最佳方法是在session被销毁时删除它们,但我不确定是否有更“直接”的方法来执行此操作。仅供引用,我没有使用Axis,我使用的是jax-ws,如果这很重要的话。更新:我不确定回答者是否真的理解这个问题。我知道如何在java中删除文件。我的问题是:@javax.jws.WebServicepublicclassMyWebService{...@javax.jws.WebMethodpublicMyFi

java - 碧 Jade 报告 : How to call the report in jsp page

我使用iReport3.7.4版本制作了一份jasper报告,现在我必须在我使用servlet、jsp和struts框架、apachetomcat的java应用程序中使用它或调用该报告服务器。我想要有关如何通过一些示例调用jasper报告的步骤。 最佳答案 在iReport中编译报告将编译后的报告放在类路径中加载它JasperReportjasperReport=(JasperReport)JRLoader.loadObject(inputStream);用数据填充它。dataSource是您拥有的DataSource实例-例如Be

java - this.getClass().getFields().length;总是返回 0

这个问题在这里已经有了答案:javareflectiongetFieldsforprivatemember|accessingobjectnamevaluedynamically(2个答案)关闭9年前。我正在尝试获取特定类中的字段数。然而,我使用的技术不起作用,总是返回0:this.getClass().getFields().length;如何获取特定类的字段数?

java - This() 与 Target() 方面

谁能解释一下this()和target()切入点在aspectj中的区别。我试着在别处找到这个,但似乎没有明确的答案。谢谢你 最佳答案 在匹配的连接点,this()是你所在的对象,target()是您正在调用/引用的对象。可能会出现混淆,因为在execution()的情况下连接点上的切入点匹配它们是同一件事——包含匹配的执行连接点的对象与运行你正在匹配的方法的对象相同。但在call()的情况下它们的连接点不同。进行调用的对象与调用该方法的对象不同。classA{publicvoidm(){Bb=newB();b.n();}}clas

java - 为什么Java静态方法可以调用构造函数,但不能引用this?

我的假设:静态方法不能调用非静态方法。构造函数是一种没有返回类型的方法。给定这个例子...publicclassMain{publicstaticvoidmain(String[]args){Mainp=newMain();//constructorcallk();//[implicit]`this`reference}protectedMain(){System.out.print("1234");}protectedvoidk(){}}此行打印1234:Mainp=newMain()这一行抛出异常:k()为什么示例代码会做这两件事?它们不会与我的上述假设冲突吗?我的假设是否正确?

java - 在 setter 中使用 "this"

我看不出以下两种创建setter的方法之间有什么真正的区别,但我想知道我是不是太天真了。一个比另一个更受欢迎吗?publicvoidfooSetter(Stringbar){_bar=bar;}publicvoidfooSetter(Stringbar){this._bar=bar;} 最佳答案 在这种情况下没有语义差异,因为没有歧义。另一方面,如果您的实例字段也称为bar,则需要使用this来消除歧义:publicvoidfooSetter(Stringbar){this.bar=bar;}