草庐IT

final-class

全部标签

Prototype Pattern —— Creational Class

Backgroundknowledge在Java中,Cloneable接口是一个标记接口(MarkerInterface),用于指示实现了该接口的类可以进行克隆操作。它并没有定义任何方法,只是起到一个标记的作用。要实现克隆功能,需要满足以下两个条件:类实现了Cloneable接口。在类中重写clone()方法。WhatisPrototypePattern原型模式通过复制现有对象来创建新对象,而无需显式地使用构造函数。原型模式允许动态创建对象,并且可以避免创建子类的复杂性。原型模式可以结合其他设计模式使用,例如工厂方法模式,以便更灵活地创建对象。这个复制分为两种模式:深复制深克隆(DeepClo

java - 错误 : Could not find or load main class . library.path=

我正在尝试在本地运行DynamoDB,按照此处的说明:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html我已经下载了zip文件,并将所有内容解压缩到一个文件夹中。我在Windows10上。在Powershell中,当我运行时在该目录中:java-Djava.library.path=./DynamoDBLocal_lib-jarDynamoDBLocal.jar-sharedDb我得到:错误:无法找到或加载主类.library.path=..DynamoDBLocal_li

java - java中的常量变量和final变量有什么区别?

请帮助我理解Java中常量变量和final变量之间的区别。我对此有点困惑。 最佳答案 常量是概念,变量的属性。final是声明常量变量的java关键字。正如其他人指出的那样,从语义/语言的角度来看,表达式常量变量是一个矛盾修饰法,因此,我们可以争论它的正确性。引用specification,无论如何,我们可以阅读Avariableofprimitivetype[...],thatisfinalandinitializedwithacompile-timeconstantexpression(§15.28),iscalledacons

java - 如何在 Java 中完全隐藏父类(super class)方法

最近我在考虑制作我自己的Date库。我在这里发现了一个问题,它是:如何在子类中隐藏父类(superclass)方法?所以它不会在子类中被检测到。例子:我有一个扩展到Date的类,另一个扩展到上一个类的类。在我的新子类中,它检测Date的所有方法,如getDate等。我想要的是在我的子类中Date的所有方法都未被发现,而不是抛出一个异常(exception),但完全未被发现。提前致谢:) 最佳答案 在这里优先考虑组合而不是继承。与其继承Date,不如将其作为MyDate类中的成员字段。publicclassMyDate{private

java - JdbcOdbcDriver.finalize() 行 : 96 中的未知 NullPointerException

我正在使用JNDI加载数据源:JDK1.6.0_31Tomcat6.0.30当我启动Eclipse(IndigoSR2)调试器时,它中断:DaemonSystemThread[Finalizer](Suspended(exceptionNullPointerException))JdbcOdbcDriver.finalize()line:96Finalizer.invokeFinalizeMethod(Object)line:notavailable[nativemethod]Finalizer.runFinalizer()line:83Finalizer.access$100(Fin

Java 9 替换 Class.newInstance

Class.newInstance在Java9中被弃用:clazz.newInstance()canbereplacedbyclazz.getDeclaredConstructor().newInstance()问题是getDeclaredConstructor返回任何构造函数而不考虑访问级别。如果我想替换我的代码中所有出现的地方(在不同的包/访问级别),我应该使用getConstructor获得公共(public)构造函数?theConstructorobjectofthepublicconstructorthatmatchesthespecifiedparameterTypes或者

java - "Failed to load Premain-Class manifest attribute"尝试使用 java 代理获取对象的大小时

当我尝试运行java程序(java-javaagent:size.jarObjectSizeTest)时,出现以下错误:FailedtoloadPremain-ClassmanifestattributefromD:\workspace\ObjectSizeTest\size.jarErroroccurredduringinitializationofVMagentlibraryfailedtoinit:instrument这是ObjectSizeTest的代码:publicclassObjectSizeTest{publicstaticvoidmain(String[]args){S

Java:引用同步对象是否需要 volatile/final?

这似乎是一个非常基本的问题,但我找不到明确的确认。假设我有一个正确同步的类:publicclassSyncClass{privateintfield;publicsynchronizedvoiddoSomething(){field=field*2;}publicsynchronizedvoiddoSomethingElse(){field=field*3;}}如果我需要对那个类的实例有一个引用,并在线程之间共享,我仍然需要声明那个实例是volatile或final,我说得对吗?如:publicclassMainClass{//previouslyOuterClasspublicsta

Java .equals() instanceof 子类?为什么不调用父类(super class) equals 而不是将其设为最终类?

它在Object的.equals(Object)javadoc中说明:Itissymmetric:foranynon-nullreferencevaluesxandy,x.equals(y)shouldreturntrueifandonlyify.equals(x)returnstrue.在示例代码中几乎所有地方我都看到重写的.equals(Object)方法,它使用instanceof作为第一个测试之一,例如这里:Whatissues/pitfallsmustbeconsideredwhenoverridingequalsandhashCode?publicclassPerson{p

java - 如何使用父类(super class)的构造函数创建子类的实例

我想为父类(superclass)的子类创建一个注册表。这些类存储在充当注册表的映射中。根据键从注册表中选择一个类,并通过反射创建该类的实例。我想根据父类(superclass)的构造函数(带有1个参数)实例化一个类。仅当我也在子类中声明构造函数时它才有效。有没有办法使用父类(superclass)的构造函数来实例化类?有没有办法使该代码类型安全?示例代码:publicclassReflectionTest{/***Baseclasswithno-argsconstructorandanotherconstructorwith1parameter*/publicstaticclassB