根据Java in Set的合同,"不允许集合将自己包含为元素"(来源).但是,对于HashSet of Objects,这是可能的,如下所示:
Set<Object> mySet = new HashSet<>();
mySet.add(mySet);
assertThat(mySet.size(), equalTo(1));
Run Code Online (Sandbox Code Playgroud)
这个断言通过了,但我希望行为是将结果集合为0或抛出异常.我意识到HashSet的底层实现是一个HashMap,但似乎应该在添加元素之前进行相等检查以避免违反该合同,不是吗?
我收到一条错误消息:
合同属性无效.根据其数据类型'clientcontracttype',该值无效
以下是此WCF应用程序的web.config中的端点配置.我正在使用.NET Framework 4.5和Visual Studio 2012.我已经验证合同OnlineReporting.Core.Contracts.IReportingInternalWcfPortal已经存在.
<endpoint address="http://localhost:63817/ReportingInternalWcfPortal.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding"
contract="OnlineReporting.Core.Contracts.IReportingInternalWcfPortal"
name="ReportingInternalPortal" />
Run Code Online (Sandbox Code Playgroud) 在WCF服务中,我有两个具有[DataContract]属性的类.其中一个类与另一个类具有"is-a"关系 - 因此类B可以从类A继承.但是,当我在这两个类之间配置继承时,两者都用[DataContract]属性表示,元数据无法加载在测试服务时.
这可能在WCF中吗?我错过了另一个属性吗?
[DataContract]
public class A
{
[DataMember]
public MyCustomType AValue1{ get; set; }
[DataMember]
public MyCustomType AValue2 { get; set; }
}
[DataContract]
public class B: A
{
[DataMember]
public double BValue1{ get; set; }
[DataMember]
public double BValue2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
注意:还使用数据协定定义自定义类型.
更新:以下是错误:
错误:无法从http:// localhost:8002/GISDataServices/mex获取元数据如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您是否已在指定地址启用元数据发布.有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档.WS- Metadata Exchange错误URI:http:// localhost:8002/GISDataServices/mex元数据包含无法解析的引用:' http:// localhost:8002/GISDataServices/mex '.
__CODE__由于内部错误,服务器无法处理请求.有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或来自<serviceDebug>配置行为),以便将异常信息发送回客户端,或者根据Microsoft .NET Framework打开跟踪3.0 SDK文档并检查服务器跟踪日志.HTTP GET错误URI:http:// localhost:8002/GISDataServices/mex 下载' http:// localhost:8002/GISDataServices/mex '时出错.请求失败,HTTP状态为400:错误请求. …
我目前正在尝试学习Ruby,并且我正在尝试更多地了解它在封装和合同方面提供的内容.
在C#中,可以使用接口定义合同.实现接口的类必须通过为每个定义的方法和属性(以及可能的其他内容)提供实现来满足合同中的条款.实现接口的单个类可以在合同定义的方法范围内执行任何需要,只要它接受相同类型的参数并返回相同类型的结果.
有没有办法在Ruby中强制执行此类操作?
谢谢
我在C#中的一个简单例子:
Run Code Online (Sandbox Code Playgroud)interface IConsole { int MaxControllers {get;} void PlayGame(IGame game); } class Xbox360 : IConsole { public int MaxControllers { get { return 4; } } public void PlayGame(IGame game) { InsertDisc(game); NavigateToMenuItem(); Click(); } } class NES : IConsole { public int MaxControllers { get { return 2; } } public void PlayGame(IGame game) { InsertCartridge(game); TurnOn(); } }
接口作为对象的合同是否是类?
从代码到执行代码,区分相同的事情有什么需要?我有点想法将一个类命名为一个类,并将实例化的执行类命名为一个对象,但总的来说,这是这些半冗余项的唯一原因吗?
struct buyer{
uint amount;
Status status;
}
mapping(address=>buyer) public buyers;
mapping(uint=>address) buyerIndex;
uint public buyerNum;
//Order a product.
function(){
uint doubleValue=value*2;
uint amount=msg.value/doubleValue;
if(buyers[msg.sender]==null){ //Error in this line
buyer abuyer=buyer({amount:amount,status:Status.Created}); //Error in this line
buyerNum++;
buyerIndex[buyerNum]=msg.sender;
buyers[msg.sender]=abuyer;
}else{
buyers[msg.sender].amount+=amount;
}
Order(msg.sender,amount*doubleValue,amount);
}
Run Code Online (Sandbox Code Playgroud)
如果买方没有记录在买方映射中,那么buyerNum ++; 但我不知道如何判断买家是否在映射中
在Intellij IDEA 14中,有一项称为自动合同推理的功能[1].
推断的@Flow注释究竟是什么意思?
例如,对于Collection boolean addAll(Collection<? extends E> c),推断的合同是
boolean addAll(@NotNull @Flow Collection<? extends E> c).
@Flow在这种情况下意味着什么?
为什么这个代码
public class SponsoredComparator implements Comparator<SRE> {
public boolean equals(SRE arg0, SRE arg1){
return arg0.getSponsored()==arg1.getSponsored();
}
public int compare(SRE object1, SRE object2) {
Log.d("SponsoredComparator","object1.getName() == "+ object1.getName());
Log.d("SponsoredComparator","object1.getSponsored() == "+ object1.getSponsored());
Log.d("SponsoredComparator","object2.getName() == "+ object2.getName());
Log.d("SponsoredComparator","object2.getSponsored() == "+ object2.getSponsored());
Log.d("SponsoredComparator","compare return == "+ (object1.getSponsored() && object2.getSponsored() ? 0 : object1.getSponsored() ? -1 : 1));
return object1.getSponsored() && object2.getSponsored() ? 0 : object1.getSponsored() ? -1 : 1;
}
}
Run Code Online (Sandbox Code Playgroud)
抛出此异常: ERROR/AndroidRuntime(244): java.lang.IllegalArgumentException: Comparison method violates its general contract!
ERROR/AndroidRuntime(4446): at java.util.TimSort.mergeLo(TimSort.java:743) …
那么,让我们考虑典型的贸易融资流程.导出器部署具有装运条件的合同,并在部署完成后生成散列.
问题:
1)合同在哪里存储?
2)海关和进口商等其他参与者如何获得此合同?
3)我们可以激活参与者级别对区块链合同的访问吗?
使用WCF Web编程模型可以指定操作合同,如下所示:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "SomeRequest?qs1={qs1}&qs2={qs2}")]
XElement SomeRequest1(string qs1, string qs2);
Run Code Online (Sandbox Code Playgroud)
现在,如果我们必须签订一个接受具有相同名称的参数数组(在这种情况下为qs1)的合同,那么......
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "SomeRequest?qs1={qs1}&qs1={qs2}")]
XElement SomeRequest2(string qs1, string qs2);
Run Code Online (Sandbox Code Playgroud)
当我们调用方法时,我们在运行时收到错误消息:
查询字符串必须具有唯一名称的"name = value"对.请注意,名称不区分大小写.有关更多详细信息,请参阅UriTemplate的文档.
如何定义一个HTTP服务,该服务使用参数数组公开资源,而不需要使用loosey-goosey接口?
contract ×10
java ×3
wcf ×3
ethereum ×2
interface ×2
.net ×1
android ×1
blockchain ×1
c# ×1
class ×1
collections ×1
comparator ×1
endpoint ×1
equivalent ×1
hashset ×1
hyperledger ×1
inference ×1
object ×1
rest ×1
ruby ×1
set ×1
solidity ×1
storage ×1
web-services ×1