草庐IT

language-design

全部标签

php - 这是在 PHP 中实现 "Design by contract"模式的正确方法吗?

我发现了“按契约(Contract)设计”模式以及如何在PHP中实现。我找不到如何在PHP中执行此操作的真实示例。第一个问题是我的做法是否正确?第二个是为什么不接受断言回调?用于可重用断言的静态类Asserts:classAsserts{publicstaticfunctionabsentOrNotNumeric($value){return!isset($value)?true:is_numeric($value);}}用法:assert_options(ASSERT_ACTIVE,true);assert_options(ASSERT_BAIL,true);assert_optio

java - 将 .jar 文件添加到 Tibco Designer

我想在TIBCODesigner(5.6)项目中使用我的类方法。我使用EclipseIndigo将我的Java项目导出到.jar中。然后我在Desinger中创建AliasLibrary并添加.jar。但是在我创建Java方法后添加单击以选择类,我在类路径存档列表字段中单击我的.jar文件,包/类列表是空的。谁能帮我? 最佳答案 尝试将其编译为与TIBCODesigner/BW正在使用的目标Java版本相同的版本。通常TIBCO会使用自己的JRE,不一定是最新的/您安装的JRE,例如你已经安装了JDK。

java - 斯卡拉 : Registry design pattern or similar?

我正在将我的系统从Java迁移到Scala。我在我的java代码中使用注册表模式从字符串中获取实现。我可以用scala做任何类似的事情吗?我是scala的新手,有人可以指点我正确的引用资料吗?我的java代码:publicclassItemRegistry{privatefinalMapfactoryRegistry;publicItemRegistry(){this.factoryRegistry=newHashMap();}publicItemRegistry(Listfactories){factoryRegistry=newHashMap();for(ItemFactoryfa

java - 依赖注入(inject)、初始化后的不变性

我希望能够指定一个对象的成员变量在对象被“初始化”后是不可变的,这对我来说意味着在它被注入(inject)任何依赖项之后,并且已经执行了它所需要的任何其他初始化操作只能在DI之后执行。是否有满足我兴趣的语言-以这种方式形式化DI、初始化并支持不变性?使它们成为语言的一部分也许是愚蠢的;也许不吧。我不确定。今天我用Java编程,但我不能像我想的那样经常使用“final”,因为这些阶段发生在构造函数完成执行之后。关于如何使用Java获得我想要的东西的任何建议?我想我可以让我的对象实现一个基类,以便这些阶段在构造函数完成之前发生,或者使用方面来做同样的事情。想法?

java - 为什么Java中的java.lang.Thread类没有被设计者标记为final?

当我们可以通过实现Runnable并将其传递给Thread构造函数来实现相同的功能时,允许用户通过扩展Thread类来创建线程的本质是什么。 最佳答案 achievethesamefunctionalitybyimplementingRunnableandpassittotheThreadconstructor扩展Thread的使用不限于Runnable。例如你可以changethebehaviorofsomemethods或添加您自己的线程本地信息(始终可以通过Thread.currentThread()访问)。

java - 如果我想了解编译器和编程语言是如何制作的,从哪里开始

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Learningtowriteacompiler我知道这是一个广泛的问题,但我可以从哪里开始学习编译器的实际工作原理、编程语言的制作方式,我的意思不是您如何使用Java或Ruby,而是人们实际上是如何制作它们的。我不会尝试以任何方式复制这些语言,但我想了解其背后的概念和理论。因此,我需要的要么是关于我应该搜索什么的一些指导,要么是更好、更适用的书籍推荐。问候,乔纳森·纳什。

java - 为了提高我的编程技能,我想关注 "learn a new language a year"。 2011 年我们可以学到什么

我想在2011年学习一门新的编程语言。我是一名java程序员,有不到一年的经验。我想学习一些真正新鲜和令人兴奋的东西,但与移动设备(iPhone、Android、iPad、Symbian)无关。 最佳答案 我建议你给Scala试试吧。它是一种运行在JVM上的语言,它在语法上非常像Java,因此您可以轻松上手。Python是另一个不错的选择。 关于java-为了提高我的编程技能,我想关注"learnanewlanguageayear"。2011年我们可以学到什么,我们在StackOverf

java - 为什么 Java 中的 switch 语句的范围没有限制?

为什么在Java中,变量的作用域限于switchblock而不是caseblock。例如,//Scopelimitedtoaswitchblockswitch(number){case1:Stringresult="...";break;case2:result="...";break;在上面的例子中,result只需要声明一次。如果您声明它两次,那么您会收到一条Duplicatelocalvariable消息。我的问题是:如果number=2,程序如何知道您声明了result?(它不会落入case1并且不会声明变量...或者会吗?)编辑:我可能会让大家感到困惑。我了解如何限制变量的范

java - Java 7 中的链式调用?

我刚刚在读Java7previewpresentation(pdf)还有一张关于链式调用的幻灯片。这是幻灯片中使用的示例://ConstructionwithsettersDrinkBuildermargarita=newDrinkBuilder();margarita.add("tequila");margarita.add("orangeliqueur");margarita.add("limejuice");margarita.withRocks();margarita.withSalt();Drinkdrink=margarita.drink();//Constructionw

Java IntelliJ 13.1.4 "Lambda expressions are not supported at this language level."

当我尝试使用表达式value->value时,我收到一条错误消息,提示Lambda不受支持。我目前正在使用支持Lambda的1.8JDK,但我仍然遇到错误。我的猜测是它是IntelliJ13.1.4,但我并不肯定。publicstaticvoidgrades(){finalListgrade=newArrayList();intgradelistnumber=1;intinputedgrade=0;while(inputedgrade!=-1){System.out.println("EnterGradeforstudent"+gradelistnumber+"(1-50):");in