琐碎的正则表达式问题(答案很可能是特定于Java的):
"#This is a comment in a file".matches("^#")
Run Code Online (Sandbox Code Playgroud)
这返回false.据我所知,^
意味着它总是意味着什么并且#
没有特殊意义,所以我^#
在字符串的开头翻译为"A'#".哪个应该匹配.在Perl中它确实如此:
perl -e "print '#This is a comment'=~/^#/;"
Run Code Online (Sandbox Code Playgroud)
打印"1".所以我很确定答案是Java特有的.有人请赐教吗?
谢谢.
在执行这段代码之后我感到困惑,其中字符串似乎表现得好像它们是值类型.我想知道赋值运算符是否运行像字符串的相等运算符之类的值.
这是我为测试此行为而执行的一段代码.
using System;
namespace RefTypeDelimma
{
class Program
{
static void Main(string[] args)
{
string a1, a2;
a1 = "ABC";
a2 = a1; //This should assign a1 reference to a2
a2 = "XYZ"; //I expect this should change the a1 value to "XYZ"
Console.WriteLine("a1:" + a1 + ", a2:" + a2);//Outputs a1:ABC, a2:XYZ
//Expected: a1:XYZ, a2:XYZ (as string being a ref type)
Proc(a2); //Altering values of ref types inside a procedure
//should reflect in the variable thats being passed …
Run Code Online (Sandbox Code Playgroud) 我有一个使用表单身份验证的Asp Mvc 2站点.当我在本地运行它时,我可以登录并无限期地保持登录状态.
但是当我把它放在服务器上时,我似乎只能保持登录状态几分钟然后似乎已经注销了.我看过饼干,有两个看似相关:
.ASPXAUTH是一个会话cookie .ASPXANONYMOUS,将在3个月后到期.
当我刷新页面时,cookie保持不变,直到我退出,当我似乎得到一个新的.ASPXANONYMOUS cookie,但.ASPXAUTH似乎是相同的.
似乎我可以保持登录状态,直到我在一段时间后做某事.如果我在登录后立即提交表单,那么它可以正常工作,但如果我一次又一次地提交数据,那么在一分钟左右之后,其中一个提交将作为已注销用户而不是用户已登录,其他所有提交的工作都是如此.
可能导致此行为的原因是什么?如何跟踪不同的内容并进行更改以便我可以无限期地保持登录状态?
编辑,
它是一个单一的服务器,但经过一些调查和搜索后,可能的候选人似乎是我在服务器上使用超过100mb并且应用程序池正在被回收.我想现在我需要知道
我们在WCF服务接口中使用Dtos,但是当Dto表示的业务对象实现多个接口并且我们想要在这些不同的上下文中返回Dtos并且还能够处理时,它们已经开始遇到问题Dtos在客户端上进行多态化.
例如,假设我们有一个IBusinessObject
包含多个属性的接口,这些属性包含对象关系,对象属性等的详细信息.我有几个实现,这个LinearBusinessObject
实现IBusinessObject
和ILinear
.还有其他实现ILinear
不是业务对象,只是简单的线性事物.
我们的服务有一个获取业务对象的方法.这将返回一个基本Dto类(BusinessObjectDto
),它声明了IBusinessObject
(关系属性等)的公共部分,并LinearBusinessObjectDto
扩展BusinessObjectDto
并添加了有关线性方面的额外信息.这很好,并使客户端能够BusinessObjects
以一定程度的多态性处理返回的内容.
我们还想要一种获得线性事物的方法.这将返回一个LinearDto
包含公共线性详细信息的基类.简单的线性对象实现扩展LinearDto
,一切都很好.但是现在我遇到了一个问题,因为我无法LinearBusinessObjectDto
从两者扩展LinearDto
而且BusinessObjectDto
因为只支持单继承,并且我不能使用接口,因为WCF不知道哪些类型然后放入服务合同定义中WDSL.
所以我开始为我的2 dtos LinearBusinessObject
,一个派生自BusinessObjectDto
(LinearBusinessObjectAsBusinessObjectDto
)和一个派生自LinearDto(LinearBusinessObjectAsLinearDto
),然后根据我感兴趣的界面转换每个.
这似乎会导致许多额外的Dto类(我已经有很多),所以我想知道是否有比这更好的解决方案?或者这只是我们必须忍受的东西?
我有一个托管在GitHub上的存储库,它有几个分支.
我如何设置主存储库的配置来设置receive.denyNonFastForwards
标志,以便主存储库只能接受快进的推送,并拒绝任何非快速前进,即使它们是--forced
我正在使用bootstrap 3并拥有此HTML:
<body>
<div class="container body-content">
<div class="row">
<div class="col-lg-6">
<label class="control-label" for="parameterValue">sdsd</label>
<div class="input-group">
<input class="form-control" type="text" name="parameterValue" placeholder="Enter a value..." />
<span class="input-group-btn"><button class="btn btn-default btn-success">Update</button></span>
</div>
<label class="control-label" for="parameterValue">sdsd</label>
<div class="input-group">
<input class="form-control" type="text" name="parameterValue" placeholder="Enter a value..." />
<span class="input-group-btn"><button class="btn btn-default btn-success">Update</button></span>
</div>
<button class="btn btn-default btn-primary" data-bind="click: $root.completeStep">Complete Step</button>
</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我希望最后一个按钮与input-group
div 垂直间隔而不接触它.
我发现使用表单的一个例子是按钮间隔开:小提琴
这就是我喜欢我的按钮的方式.我怎么能得到它?
我们有一个端点,当您发布时创建新版本的资源并返回201以及新创建的资源的位置.它根据当前版本与发布版本的比较确定新版本号(使用类似规则集的semver).
如果您发布的版本与现有版本相同,则不会更新版本号.在这种情况下我们应该回报什么?
201响应的幂等性是否重要?
有更好的建议吗?
我正在尝试为这个类编写一个名为Receiver的测试:
public void get(People person) {
if(null != person) {
LOG.info("Person with ID " + person.getId() + " received");
processor.process(person);
}else{
LOG.info("Person not received abort!");
}
}
Run Code Online (Sandbox Code Playgroud)
这是测试:
@Test
public void testReceivePerson(){
context.checking(new Expectations() {{
receiver.get(person);
atLeast(1).of(person).getId();
will(returnValue(String.class));
}});
}
Run Code Online (Sandbox Code Playgroud)
注意:receiver是Receiver类的实例(真的不是mock),processor是处理person(People类的模拟对象)的Processor类(真实不是mock)的实例.GetId是一个String not int方法,不是错误的.
测试失败:person.getId()的意外调用
我正在使用jMock任何帮助将不胜感激.据我所知,当我称这种get
方法正确执行时,我需要嘲笑person.getId()
,而且我已经在圈子里徘徊了一段时间,现在任何帮助都会受到赞赏.
我有一个接口IKey
,我想有一个方法,将键作为字符串返回.我们考虑过这样的方法:
String GetAsString();
Run Code Online (Sandbox Code Playgroud)
它将返回字符串表示,但希望能够ToString()
在界面中再次声明以强制实现者实现它,但它并没有强制它们,因为它们具有继承自的实现Object
.有人建议:
public interface IKey
{
string ToString(string dummyParameter=null);
}
Run Code Online (Sandbox Code Playgroud)
这会强制在任何实现类中实现该方法,但是由于可选参数的工作方式,调用者不需要为此提供值,并确保ToString()
对作为接口的对象的方法的任何调用IKey
或者实现类将始终调用类实现而不是Object
实现.
在实现中,我们可以忽略dummyParameter
并返回我们想要的东西,安全地知道调用ToString()
将始终实际调用ToString(null)
.
现在这对我来说都是错误的,但与此同时它确实有一些相当不错的东西.它几乎与拥有一个方法完全相同,因为它GetAsString()
只能在IKey
接口和派生类上调用,除了它看起来像ToString()
我们想要使用的更自然的方法,并且我们能够强制在子类中实现它.
说过没有使用的伪参数感觉不对.
这可怕吗?还是很棒?
这个问题是适合SO还是适用于程序员?
例子
public class Key :IKey
{
public string ToString(string abc = null)
{
return "100";
}
}
Key key = new Key ();
Trace.WriteLine (key.ToString());
Trace.WriteLine (key.ToString(null));
Trace.WriteLine (key.ToString("ac"));
Trace.WriteLine (((object)key).ToString());
Run Code Online (Sandbox Code Playgroud)
输出:
100
100
100
Blah.Tests.Key
Run Code Online (Sandbox Code Playgroud) 我们有一个WCF服务,它需要azure的acs服务提供的令牌,并且acs配置为使用内置的服务身份进行身份验证.
我们是否也只允许通过客户端证书身份验证访问此服务(因此只有安装了证书的客户端才能调用该服务),还提供用户名和密码以提供给acs服务以获取acs服务提供的令牌建立服务索赔(最终为其他用户)
或者是一个还是另一个?
我们也将最终使用https进行服务,以防万一.