草庐IT

反应:不变。

全部标签

java - 在 Java 中向接口(interface)添加不变量

我一直在考虑创建一个Java框架,允许程序员在接口(interface)上指定不变量(前置条件和后置条件)。目的是使代码更健壮,并减少需要为同一接口(interface)的不同实现编写的单元测试的数量。我设想创建一些方法来注释带有程序员也会编写的不变量的方法。例如。interfaceSort{int[]sort(int[]nums);}将用注解装饰,以确保任何实现都返回一个排序列表。此注释将链接到可以在编译时针对任何实现运行的单元测试。这是一个疯狂的想法还是对更广泛的编程社区有用? 最佳答案 这听起来可能与JML有关和ESC/Jav

java - 修改 XML 节点但保持 XML 文件格式不变

如何在不更改属性排序、标记扩展和编码等的情况下修改XML文件?(我更喜欢DOMAPI) 最佳答案 你可以试试VTD-XML.由于该库会在保持文件内容不变的同时构建索引,因此其操作API将允许“修补”您的文件,同时保持其余部分不变。使用VTD-XMLAPI,您将能够像DOM树一样导航您的XML(甚至使用XPath)并进行一些修改(插入元素、插入属性等) 关于java-修改XML节点但保持XML文件格式不变,我们在StackOverflow上找到一个类似的问题:

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

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

java - 是否可以保证 java.util.Collections.shuffle() 背后的算法在未来的 Java 版本中保持不变?

在未来的java版本中,以下程序是否保证生成具有相同内容和顺序的列表?importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collections;importjava.util.List;importjava.util.Random;publicclassTest{publicstaticvoidmain(String[]args){Listlist=newArrayList(Arrays.asList("A","B","C","D"));Collections.shuffle(list,newRandom(

java - JPanel 对 KeyBindings 没有反应

我正在开发一个需要JPanel对按下的转义键使用react的应用程序。我很确定我使用了正确的方法将键绑定(bind)注册到组件,但显然我仍然做错了。这是负责注册结束响应所述键绑定(bind)的代码:privatevoidinitializeKeyBindings(){Actiona=newAbstractAction(){privatestaticfinallongserialVersionUID=1L;@OverridepublicvoidactionPerformed(ActionEvente){menu.setVisible(true);System.out.println("H

java - string.replaceAll() 性能是否受到字符串不变性的影响?

假设我在替换了1,000个匹配实例的大字符串上调用了replaceAll()。这是否意味着由于字符串不可变性而在过程中创建并重新分配了1,000个字符串?有没有更快的替代方案? 最佳答案 如果你深入研究String,您会看到它将replaceAll()委托(delegate)给Pattern&Matcher和Matcher.replaceAll()使用StringBuilder来存储最终返回的值。所以不,String.replaceAll()不会创建超过少量的对象。 关于java-str

java - 不变性和可读性

所以我一直在阅读JoshuaBloch的EffectiveJava并注意到我在工作中实际遇到的两点。要点1:使用setter方法使代码更具可读性。在他的例子中,我们有一个类有一个非常大的构造函数。当人们实例化类时,很难说出所有参数的情况。因此,他建议制作一个简约的构造函数并为所有其他选项设置设置方法,而不是...MyClassclazz=newMyClass(a,b,c,d,e,f,g);你会写....MyClassclazz=newMyClass(a,b,c);clazz.setDitto(d);clazz.setEcho(e);clazz.setFunzies(f);clazz.s

java - 共享四边形基的方形/矩形(具有约束不变量)之间的继承问题

我有一个接口(interface)Polygon,然后我有一个类Quadrilateral。然后,我有两个类,Square和Rectangle,它们扩展了Quadrilateral。四边形由实例变量sideA、sideB、sideC和sideD组成。它包含方法area()和perimeter()来计算任何四边形的面积和周长。考虑到这一点,Square类有一个实例变量lengthOfSides,而Rectangle类有两个实例变量,length和width。由于Quadrilateral中的方法area和perimeter可以用于计算任何四边形的面积和周长,包括正方形和矩形,我认为最好只

c# - 不变断言适合 C# 编程吗?

在书中codersatwork,作者问“你如何在代码中使用不变量”。请解释这个问题的含义。我看到类不变量onwiki,但是这个例子是用Java写的,我的Java不够熟练,无法将这个例子与C#联系起来。.NET4.0引入了不变性、协变性和逆变性,并得到了很好的解释here.不变性是如此广泛。作者对这个词的使用似乎与单元测试有关。对于那些读过这本书的人来说,作者的意思是什么?我们是在谈论做出假设并在单元测试后简单地测试有效性吗? 最佳答案 “不变”这个词不仅仅意味着某些东西在特定条件下不会改变。有许多不同种类的不变量。例如,在物理学中,

17、全文检索 -- Elasticsearch -- 使用 反应式 RestClient (ReactiveElasticsearchClient)操作 Es 服务器(增、删、查 :索引库和文档)

目录使用反应式RestClient(ReactiveElasticsearchClient)操作Elasticsearch服务器(增、删、查索引库和文档)反应式RestClient反应式RestClient的方法处理配置信息及对反应式RestClient进行定制代码演示:1、创建项目2、添加依赖3、配置文件4、测试类演示反应式操作Elasticsearch服务器1、添加索引库代码测试结果2、删除索引库代码测试结果3、查询所有索引库代码测试结果4、往索引库添加文档代码测试结果5、根据文档的id获取文档代码测试结果6、根据关键字和通配符查询文档代码测试结果7、根据文档的id删除文档代码测试结果完整