草庐IT

compiler-interface

全部标签

java - Foreach 通过不同的对象但都实现相同的接口(interface)可能吗?

假设我有这个interfaceMovable{//somestuff}我有classCarimplementsMovable{//somestuff}也许我还有classBikeimplementsMovable{//somestuff}我注意到如果我有这个:ArrayListmovableThings=newArrayList();movableThings.add(somekindofCar)movableThings.add(somekindofBike)movableThings.add(somekindofBike)这可以称为:for(Movablem:movableThin

java - 抽象类或接口(interface)中的 public static final 字段

我有很多抽象类的子类,每个子类都声明了一个同名的publicstaticfinal字段。我在考虑在抽象父类(superclass)中有这个字段而不初始化它,并希望每个子类都被强制初始化它。我之所以想到这一点,是因为我的抽象类的所有子类都声明了一个名为UNIQUE_ID的公共(public)静态最终字符串字段,并且每个子类都必须声明一个具有完全相同名称的字段。我希望我的问题足够清楚,如果不是请告诉我。可以做一些或多或少等同于此的事情吗?编辑:添加代码:我的抽象类如下所示:publicabstractclassExperimentPanelModelextendsPanelizable{p

java - 编译 vs 翻译, "compiling"Java 到字节码?

我的理解是这样的,定义:翻译-拥有某种语言的代码,生成另一种语言的代码。Compilaton-翻译成机器代码。机器码-CPU的直接指令。现在,来自docs.oracle.com:javac-Javaprogramminglanguagecompiler编译器...?我认为它是Java翻译器,因为它生成的是代码,而不是机器代码。字节码需要解释器(JVM)才能运行,因此它绝对不是机器码。来自Wikipedia:Javaapplicationsaretypicallycompiledtobytecode同样。根据定义,我会说Java翻译为字节码。Internet上还有更多示例,我认为对此存在

java - IntelliJ IDEA : the first compilation takes a lot of time

我正在使用IntelliJIDEA开发我的Java应用程序。我对项目的第一次编译(或完全重建)需要很长时间,大约15分钟(并且非常占用CPU)这一事实感到沮丧。该项目由数百个Java类组成,但使用Eclipse编译只需1-2分钟。是否可以设置任何编译选项来加快此步骤?更新我的配置:SSD、64GB内存、XeonE5-1660、Win7Ultimate编译时间(重建):eclipse:30s带有Eclipse编译器45s的IntelliJIDEA带有javac编译器的IntelliJIDEA:超过10分钟(!)java类的数量~5000 最佳答案

此处应为 Java Servlet 接口(interface)

我对Java完全陌生。我正在创建一个Servlet并收到错误interfaceisexpectedhere.你能让我理解问题吗?我正在使用IntelliJ14。我的Servlet代码如下:-packageERPdetector;/***CreatedbySinhaon12/15/14.*/importjavax.servlet.http.*;importjavax.servlet.*;importjava.io.*;publicclassErpServletimplementsHttpServlet{publicvoiddoGet(HttpServletRequestreq,HttpS

java - 是否有组合和标记接口(interface)的解决方法?

我发现自己经常遇到以下问题。我有某种标记接口(interface)(为简单起见,让我们使用java.io.Serializable)和几个包装器(适配器、装饰器、代理……)。但是,当您将一个Serializable实例包装在另一个实例(不可序列化)中时,您就失去了功能。同样的问题出现在java.util.RandomAccess中,它可以通过List实现来实现。有没有好的OOP方法来处理它? 最佳答案 这是最近关于Guava邮件列表的讨论-我的回答涉及到这个相当基本的问题。http://groups.google.com/group

java - 为什么要使用空的抽象类而不是接口(interface)?

我使用GWT和Place&Activity机制。很遗憾Place是一个类,因为我的自定义place不能扩展另一个类。当我查看Place代码时,我看到以下内容:publicabstractclassPlace{/***Thenullplace.*/publicstaticfinalPlaceNOWHERE=newPlace(){};}可见,Place可以是一个接口(interface)。GWT团队选择将Place设为抽象类而不是接口(interface)是否有充分的理由?概括地说:是否有充分的理由创建真正空的抽象类与接口(interface)? 最佳答案

java - 为什么接口(interface)不能是最终的?

JLS2.13.1接口(interface)修饰符Aninterfacecannotbefinal,becausetheimplementationofsuchaclasscouldneverbecompleted.如果我可以在接口(interface)中编写创建静态内部类,我可以在其中提供实现,那么为什么会有这样的限制interfaceType{//NormalclassValue{privateValue(){}publicvoidprint(){System.out.println("Test");}}publicfinalValuevalue=newValue();}

java - 对接口(interface)重写方法的反射(reflection)

我有以下代码,一个通用的ITest接口(interface)由一个非通用的ITestDouble接口(interface)扩展。op方法被ITestDouble覆盖。当我尝试列出ITestDouble的所有方法时,我得到了两次op。如何验证它们实际上是相同的方法?publicclassTest{publicstaticvoidmain(String[]args)throwsNoSuchMethodException{for(Methodm:ITestDouble.class.getMethods()){System.out.println(m.getDeclaringClass()+"

java - Java 中的接口(interface)数组

我有一个接口(interface)A:interfaceA{}然后我有一个B类:classBimplementsA{}然后我有一个使用A列表的方法:voidprocess(ArrayListmyList){}我想给它传递一个B的列表:ArrayListitems=newArrayList();items.add(newB());process(items);但是随后出现类型不匹配的错误。我明白为什么。ArrayList本身是一种类型,它没有从ArrayList转换的功能至ArrayList.是否有一种快速且资源明智的方式来形成适合传递给我的新数组process方法?