草庐IT

java - 在不扩展任何内容的类中调用 super() 是不好的做法吗?

我经常看到人们在没有显式扩展任何内容的类中显式调用super()。publicclassFoo{publicFoo(){super();//dootherconstructorstuff}}现在我知道这是完全合法的,如果省略,编译器会添加调用,但我仍然认为这是不好的做法。每当我看到这个时,我想知道程序员是否对继承有一些误解以及所有类都隐式扩展Object这一事实。我是否应该将此添加到我们的编码标准/最佳实践中?当我看到团队中的其他开发人员这样做时,我是否应该召集他们这样做?这是我的个人问题,但我不知道我是否只是挑剔。 最佳答案 虽然

java - 如何在 Java 中构造一个不可实例化和不可继承的类

这个问题说明了一切。我知道单例模式(final属于它的类)是一种解决方案。我们还有其他可能的方法可以实现这一目标吗?抽象类使其不可实例化。使其成为最终的使其不可继承。我们如何将两者结合起来?publicfinalclassSingletonObject{privateSingletonObject(){//nocodereq'd}/*publicstaticSingletonObjectgetSingletonObject(){if(ref==null)//it'sok,wecancallthisconstructorref=newSingletonObject();returnref

java - 为什么在未使用的代码中包含对缺失接口(interface)的方法调用的类会导致 Java 类加载错误?

我看到一些类加载行为似乎与JVM规范不一致,我想知道这是否是一个错误。如果没有,希望有人能解释原因。下面的示例代码只是从其main方法中打印hello。它有一个未使用的方法,其中包含对方法的方法调用,该方法声明它采用“C”(接口(interface))作为参数。当main执行时(类路径中没有A、B和C)为接口(interface)C抛出ClassNotFound错误。(注意C在运行时实际上从来不需要,因为它只是在从不执行的方法中引用)。这似乎违反了JVM规范JavaVM规范第2版第2.17.1节说:Theonlyrequirementregardingwhenresolutionisp

java - 如何设置 rmiregistry 使用的类路径?

我正在尝试制作一个JavaRMI客户端/服务器应用程序。我在启动我的应用程序的服务器端时遇到问题,因为当我尝试启动应用程序。我从这里的简单教程开始:http://docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hello-world.html.按照这些说明进行操作后,它最初抛出ClassNotFoundException并提示找不到“example.hello.Hello”。我能够通过在教程中从destDir目录启动rmiregistry来解决这个问题,因为rmiregistry显然将其初始起始目录用作其类路径的一部分。在那之后我开始

java - 如何使用另一场 war 的类文件

我们有两个不同的网络应用程序,我们希望将一场war的几个Controller扩展到另一场war。我们正在使用maven来构建项目。为了包括war我们已经给出了它的依赖性com.abc.exchangeemployer2.3.M2-SNAPSHOTwarcompile无法构建给出类未找到异常。任何人都可以帮助我实现这一目标吗?我遇到错误mavenbuildfailed:[INFO]------------------------------------------------------------------------[ERROR]Failedtoexecutegoalorg.apa

java - 我可以知道调用 JNI C 方法的类的名称吗?

有什么方法可以知道在JNIC代码中调用方法的类的名称?我可以使用以下语句获取对该类的引用:jclasscls=(*env)->GetObjectClass(env,obj);但是我有什么办法可以知道类(class)的名字吗?. 最佳答案 此代码将为您提供调用类名称:jclasscls=env->GetObjectClass(obj);//FirstgettheclassobjectjmethodIDmid=env->GetMethodID(cls,"getClass","()Ljava/lang/Class;");jobjectcl

java - 以良好的类(class)设计为目标时需要注意哪些事项?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion昨天我参加了一家领先的IT服务公司的面试。技术面试很好,没有问题,然后我转到了另一轮关于管理、设计和流程的面试。除了以下问题,我已经回答了所有问题。面试官提问:Letsayyouaredevelopingaclass,whichIamgoingtoconsumeinmyclassbyextendingthat,whatarethekeypointsyoukeepinmind?Ex,ClassA,which

java - 在 Java 中,为什么可以从同一个包内的类外部访问 protected 成员?

这个问题在这里已经有了答案:Whydoesthe"protected"modifierinJavaallowaccesstootherclassesinsamepackage?(6个答案)关闭7年前。在他的书中,HerbertSchildt在第172页(第3段)中说“protected仅在涉及继承时适用。”。在第228页中,表9-1显示可以从同一包中的非子类访问protected成员。以下代码有效并支持表9-1中的信息。Class1.java:packageMypack;publicclassClass1{protectedpro=1;publicClass1(){System.out

java - 您的类应该实现 ActionListener 还是使用匿名 ActionListener 类的对象

实现java.awt.event.ActionListener接口(interface)的最佳方法是什么?让您的类实现ActionListener并将其添加为ActionListener:classFooimplementsActionListener{publicFoo(){JButtonbutton=newJButton();button.addActionListener(this);}publicvoidactionPerformed(ActionEvente){}}或者添加一个匿名ActionListener类的对象:classFoo{publicFoo(){JButtonb

java - 我如何在 IntelliJ IDEA 中使用来自另一个项目的类?

我有两个IntelliJIDEAJava项目;项目A和项目B。我想在ProjectB中导入和使用来自ProjectA的代码。我该怎么做?在Eclipse中,我只需转到ProjectB的构建路径设置并添加ProjectA。 最佳答案 你可以在这些项目之间创建依赖(让项目B依赖于项目A)它所做的本质上是先编译项目A,然后将其编译后的jar作为依赖项放到项目B中进行编译或运行。您也可以手动执行此操作。IDEA中的步骤(如果您遵循以下提到的最佳实践,则不需要以下这些步骤):右键单击项目并选择打开模块设置转到依赖项选项卡点击加号并添加您要使用