草庐IT

decorated_method

全部标签

java - 装饰器模式 : Why do we need an abstract decorator?

这个问题已经被问过了here,但不是回答具体问题,而是给出了装饰器模式如何工作的描述。我想再问一次,因为仅仅通过阅读装饰器模式的工作原理对我来说答案并没有立即显现出来(我已经阅读了维基百科的文章和《HeadFirstDesignPatterns》一书中的部分)。基本上,我想知道为什么必须创建一个抽象装饰器类来实现(或扩展)某些接口(interface)(或抽象类)。为什么所有新的“装饰类”都不能简单地实现(或扩展)基本抽象对象本身(而不是扩展抽象装饰器类)?为了更具体,我将使用设计模式书中处理咖啡饮料的示例:有一个抽象的组件类叫BeverageHouseBlend等简单饮料类型只需扩展

Java面试题: finalize() method

我在一次采访中得到了以下短语:TheinvocationofanObject'sfinalize()methodisthelastthingthathappensbeforeanobjectisgarbagedcollected.我必须通过以下方式回答:是的错误我选择了True,但这是错误的。你能解释一下为什么吗? 最佳答案 顺序不同:首先对象被收集。那么对象最终确定。见http://java.dzone.com/articles/ocajp-7-object-lifecycle-javaObjectlifecycle:Create

java - 为什么 protected android :onClick method in Activity actually work?

假设您在Activity中将android:onClick="doClick"定义为protectedvoiddoClick(Viewview){}documentation声明ThisnamemustcorrespondtoapublicmethodthattakesexactlyoneparameteroftypeView.这是底层Class.getMethod()方法的给定要求,它只找到公共(public)方法作为documentation声明它ReturnsaMethodobjectthatreflectsthespecifiedpublicmembermethodofthec

java.lang.NullPointerException : Attempt to invoke virtual method on a null object reference

这个问题在这里已经有了答案:WhatisaNullPointerException,andhowdoIfixit?(12个回答)关闭7年前。我正在尝试将玩家的姓名保存在共享偏好中,并通过在共享偏好中再次获取它来使其显示在另一个Activity中,但我的应用程序崩溃了。致命异常:主要Process:plp.cs4b.thesis.drawitapp,PID:1970java.lang.RuntimeException:UnabletostartactivityComponentInfo{plp.cs4b.thesis.drawitapp/plp.cs4b.thesis.drawitapp

java - Spring 数据: Override save method

我正在考虑一个项目的Spring数据。是否可以覆盖每个默认生成的保存方法?如果是,如何? 最佳答案 像往常一样简单地创建您的自定义接口(interface),并在那里声明您想要覆盖的方法,并使用与CrudRepository公开的方法相同的签名。(或JpaRepository等)。假设你有一个MyEntity实体和MyEntityRepository存储库,并且您想要覆盖默认自动生成的saveMyEntityRepository的方法|它需要一个唯一的实体实例,然后定义:publicinterfaceMyEntityReposito

java - "Comparison method violates its general contract!"- TimSort 和 GridLayout

我制作了一个调色板,其中包含一个jPanel和一个JLabel数组。起初它运行良好,但后来我将其他一些jLabels从JPanel中取出并添加了一些事件。现在我不断收到此错误:Exceptioninthread"AWT-EventQueue-0"java.lang.IllegalArgumentException:Comparisonmethodviolatesitsgeneralcontract!atjava.util.TimSort.mergeLo(TimSort.java:747)atjava.util.TimSort.mergeAt(TimSort.java:483)atjav

java - Gradle 同步失败 : Unable to find method

我尝试在AndroidStudio中导入一个项目。导入时,Gradle出现错误:Gradlesyncfailed:Unabletofindmethod'org.gradle.api.artifacts.Configuration.setExtendsFrom(Ljava/lang/Iterable;)Lorg/gradle/api/artifacts/Configuration;'.我试过了:重新下载依赖和同步项目:失败(同样的错误)。停止Gradle构建过程:失败(同样的错误)。删除主目录中的.graddle:失败(同样的错误)。使缓存失效并重启失败(同样的错误)。卸载并重新安装An

Java 日志记录 : show the source line number of the caller (not the logging helper method)

Java的众多(叹息...)日志框架都很好地显示了创建日志消息的方法的源文件名的行号:log.info("hey");[INFO][Foo:413]hey但如果中间有辅助方法,实际调用者将是辅助方法,这并没有太多信息。log_info("hey");[INFO][LoggingSupport:123]hey在确定要打印的源位置时,有没有办法告诉日志记录系统从调用堆栈中删除一帧?我想这是特定于实现的;我需要的是通过CommonsLogging实现的Log4J,但我有兴趣了解其他选项。 最佳答案 另一种答案。可以通过使用方法要求log4

java - 在 Java 中,this.method() 和 method() 有什么区别?

调用this.method()和method()有什么区别(包括性能区别)? 最佳答案 唯一重要的是你是否使用OuterClass.this.method()例如classOuterClass{voidmethod(){}classInnerClass{voidmethod(){OuterClass.this.method();//notthesameasmethod().}}} 关于java-在Java中,this.method()和method()有什么区别?,我们在StackOve

java - 我收到此警告 : non-varargs call of varargs method with inexact argument type for last parameter;

这是我收到警告的示例代码。ClassaClass=Class.forName(impl);Methodmethod=aClass.getMethod("getInstance",null);item=(PreferenceItem)method.invoke(null,null);警告:warning:non-varargscallofvarargsmethodwithinexactargumenttypeforlastparameter;casttojava.lang.Classforavarargscallcasttojava.lang.Class[]foranon-varargs