草庐IT

CONTRACT

全部标签

java - 方法的 "general contract"是什么

我正在查看DataInputStream的Java文档这里:http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html我想看看它的方法是做什么的,所以我查看了readBoolean()的描述,readByte(),readChar()等等描述都是这样的:SeethegeneralcontractofthereadBooleanmethodofDataInput.并在扩展说明中。publicfinalbooleanreadBoolean()throwsIOExceptionSeethegeneralcontr

java - 无法复制 : "Comparison method violates its general contract!"

我收到以下错误:“比较方法违反了它的一般契约(Contract)!”使用以下比较器时,但是我无法使用jUnit复制异常。我想知道是什么导致了这个问题以及如何复制它。有其他人遇到同样问题但不知道如何复制的例子。publicclassDtoComparatorimplementsComparator{@Overridepublicintcompare(Dtor1,Dtor2){intvalue=0;value=r1.getOrder()-r2.getOrder();if(value==0&&!isValueNull(r1.getDate(),r2.getDate()))value=r1.g

java.lang.IllegalArgumentException : Comparison method violates its general contract! java.util.Date

java.lang.IllegalArgumentException:Comparisonmethodviolatesitsgeneralcontract!atjava.util.TimSort.mergeLo(TimSort.java:747)atjava.util.TimSort.mergeAt(TimSort.java:483)atjava.util.TimSort.mergeCollapse(TimSort.java:410)atjava.util.TimSort.sort(TimSort.java:214)atjava.util.TimSort.sort(TimSort.ja

Java 比较器 : Violates General Contract

所以我有这个比较器:importjava.util.Comparator;publicclassSolutionComparatorimplementsComparator{privatefinalinttarget;publicSolutionComparator(inttarget){this.target=target;}@Overridepublicintcompare(ExpressionTreeo1,ExpressionTreeo2){intv1=o1.getValue();intv2=o2.getValue();if(v1==-1&&v2==-1)return0;else

java - Equals 和 hashCode 与 EqualsVerifier 的契约(Contract)

我对Java中使用EqualsVerifier的equals和hashCode契约有一些疑问图书馆。假设我们有这样的东西publicabstractclassPerson{protectedStringname;@Overridepublicbooleanequals(Objectobj){//onlynameistakenintoaccount}@OverridepublicinthashCode(){//onlynameistakenintoaccount}}以及以下扩展类:publicfinalclassWorkerextendsPerson{privateStringworkD

Java 接口(interface) - 契约(Contract)中到底有什么?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter为指导。9年前关闭。我知道并理解Java中接口(interface)的值(value)。您对接口(interface)进行编码,然后您可以更改您的实现,而无需更改使用该接口(interface)的任何代码。通常,术语“契约(Contract)”与接口(interface)一起使用。我理解它的方式是接口(interface)定义了应用程序和实现之间的“契约”。所以,当我创建一个实

java - 比较器违反一般契约(Contract)

以下代码是DaveKoelle'sAlphanumComparator的编辑版本.编辑包含将空字符串排序到列表末尾的代码,或者在我的例子中是JTable的底部。问题是java.lang.IllegalArgumentException:Comparisonmethodviolatesitsgeneralcontract!发生。为了解决我的问题,我调查了它并找到了诸如比较器没有在正确位置的return0;之类的原因。我还在Javabugdatabase中找到了一条评论读Thesortingalgorithmusedbyjava.util.Arrays.sortand(indirectly

java - Collectors.toSet() 是否总是返回 HashSet ?什么是契约(Contract)?

Javadoc说ReturnsaCollectorthataccumulatestheinputelementsintoanewSet.Therearenoguaranteesonthetype,mutability,serializability,orthread-safetyoftheSetreturned;ifmorecontroloverthereturnedSetisrequired,usetoCollection(java.util.function.Supplier).所以Collectors.toCollection(HashSet::new)似乎是避免这里出现问题的好

c++ - std::future 或 std::shared_future 等待多线程

我有一个线程从容器中获取每个元素并向数据库发送上传请求。上传是同步完成的。容器中的元素是金融合约,它们可能有也可能没有与之关联的数据结构调用ticktable。现在,对于那些有ticktable的合约,我必须进行两次上传。1)首先将ticktable上传到db。db返回一个id。2)将id附加到契约(Contract)上,然后上传契约(Contract)。因此,例如,如果我循环遍历包含100个合约的容器,假设其中30个具有ticktable,其余70个没有。我想弄清楚std::future或std::shared_future是否适合这样的任务?我尝试通过将future与30个合约中的

c++ - boost进程间容器适契约(Contract)进程线程共享存储吗?

我需要一个vector容器在同一进程的两个线程之间共享,为以下方法提供互斥保护访问:emptysizeerasepush_back我还希望集合提供一个迭代器,它在使用迭代器时锁定容器。本质上,我正在寻找一个std::vector的集合界面,但具有并发访问保护,但我似乎找不到任何东西。是boost::interprocess适合这种应用的容器?如果没有,是否有更合适的替代方案,还是我必须自己编写? 最佳答案 答案是肯定的——它是合适的。Seehere 关于c++-boost进程间容器适契约