草庐IT

send_this_email

全部标签

java - 如何在java中访问匿名外部类的 "this"引用

我有以下问题。两个嵌套的匿名类型。我想访问最内部类中外部匿名类的“this”引用。通常,如果一个人在命名的外部类中有匿名嵌套类(我们称之为“类Outer”),他/她将在嵌套类中键入Outer.this.someMethod()。如果它是匿名的,我该如何引用外部类?示例代码:publicinterfaceOuter{voidouterMethod();}publicinterfaceInner{voidinnerMethod();}...publicstaticvoidmain(String[]args){...newOuter(){publicvoidouterMethod(){new

android - 警告 : Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)

Android工作室:DonotplaceAndroidcontextclassesinstaticfields;thisisamemoryleak(andalsobreaksInstantRun)所以2个问题:#1如果没有上下文的静态变量,如何从静态方法调用startService?#2如何从静态方法(相同)发送localBroadcast?例子:publicstaticvoidlog(intiLogLevel,StringsRequest,StringsData){if(iLogLevel>0){Intentintent=newIntent(mContext,LogService.

android - 警告 : Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)

Android工作室:DonotplaceAndroidcontextclassesinstaticfields;thisisamemoryleak(andalsobreaksInstantRun)所以2个问题:#1如果没有上下文的静态变量,如何从静态方法调用startService?#2如何从静态方法(相同)发送localBroadcast?例子:publicstaticvoidlog(intiLogLevel,StringsRequest,StringsData){if(iLogLevel>0){Intentintent=newIntent(mContext,LogService.

java - 为什么我不能使用静态上下文中的 "super"变量,即使 "super"指的是父类而不是类实例,这与 "this"不同?

我说的是java语言。变量“this”在类内部使用时,指的是该类的当前实例,这意味着您不能在静态方法内部使用“this”。但是“super”,当用在类内部时,是指该类的父类(superclass),而不是父类(superclass)的实例,这应该意味着你可以在静态方法内部使用“super”。但事实证明你做不到。一个可能的解释是“super”也指父类(superclass)的一个实例,但我不明白为什么它应该... 最佳答案 这是JLS中关于super关键字的部分:http://docs.oracle.com/javase/specs/

java - 为什么在 this 方法中添加一个 If 语句会大大降低它的速度?

我在answeringanotherquestion中遇到了这个.我试图诊断哪个代码更改对速度有更大的影响。我在for循环中使用了一个boolean标志来在使用辅助方法构建Color之间切换。.有趣的是,当我决定哪个更快并删除if时,代码的速度放大了10倍。之前花费140毫秒,之后仅花费13毫秒。我应该只从循环中删除大约7个计算中的一个。为什么速度会大幅提升?慢速代码:(当helperMethods为false时在141毫秒内运行)*参见编辑2publicstaticvoidapplyAlphaGetPixels(Bitmapb,BitmapbAlpha,booleanhelperMe

java - 什么时候在Java中使用 "this"比较合适

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhenshouldIuse“this”inaclass?如何知道在引用实例的字段时是否使用“this”?例如:returnthis.name我被教导了一个有用的案例。即当输入参数与字段名称相同时:publicvoidsetName(Stringname){this.name=name;}除此之外,“this”似乎是不必要的..还有哪些其他情况?

java - "Warning: Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)"

类似的问题是askedhere,here和here但上下文与此完全不同,而且codethatgavefromthiserror由Android和AndroidStudio的制造商编写。这是代码:publicclassMySingleton{privatestaticMySingletonmInstance;privateRequestQueuemRequestQueue;privateImageLoadermImageLoader;privatestaticContextmCtx;privateMySingleton(Contextcontext){mCtx=context;mRequ

java - IntelliJ/安卓工作室 : remove unnecessary use of 'this.'

我正在从事一个项目,之前的开发人员添加了很多this.x代码,在我看来,这使得它变得更长,因此可读性更差。它通过一些Eclipse保存操作被放置在整个项目中。我正在寻找的是一种IntelliJ重构方法,我可以重构整个项目的所有自引用,以便:this.something="foo";变成这样:something="foo";是否有类似的东西(我使用的是AndroidStudio1.2),或者我是否必须运行正则表达式替换并确保没有任何问题? 最佳答案 实现此目的的一种方法是使用Inspections。您可以通过转到设置>编辑器>检查来编

java - Mockito - "Wanted but not invoked; However there were other interactions with this mock"错误

我正在验证是否使用Mockito调用了一个函数,但Mockito告诉我我正在验证的函数从未被调用过,并且调用了其他函数。但在我看来,我正在调用正确的函数......这是我遇到的错误的堆栈跟踪:Wantedbutnotinvoked:relationshipAutoIndexer.getAutoIndex();->atorg.whispercomm.manes.server.graph.DataServiceImplTest.testInitIndices(DataServiceImplTest.java:117)However,therewereotherinteractionswit

java - eclipse |马文 : Multiple annotations found at this line

我正在尝试将Maven项目导入Eclipse。我正在使用Helios。我已经下载了m2eclipse。我已经导入了项目。但是我在编译项目时遇到了很多麻烦。完整项目包含5个Eclipse项目,即:prj1、prj2、prj3、prj4和prj5如果我在prj1/pom.xml查看(Eclipse)标记,我会遇到以下问题:Multipleannotationsfoundatthisline:-Missingartifactlog4j:log4j:jar:1.2.15:compile-Missingartifactorg.apache.xmlbeans:xmlbeans-xpath:jar: