我有一个字符串arraylist names,其中包含人的名字.我想按字母顺序对arraylist进行排序.
ArrayList<String> names = new ArrayList<String>();
names.add("seetha");
names.add("sudhin");
names.add("Swetha");
names.add("Neethu");
names.add("ananya");
names.add("Athira");
names.add("bala");
names.add("Tony");
names.add("Karthika");
names.add("Nithin");
names.add("Vinod");
names.add("jeena");
Collections.sort(names);
for(int i=0; i<names.size(); i++)
System.out.println(names.get(i));
Run Code Online (Sandbox Code Playgroud)
我尝试以上述方式对列表进行排序.但是它将排序的数组显示为:
Athira
Karthika
..
..
ananya
bala
...
Run Code Online (Sandbox Code Playgroud)
但我不想让它区分大小写.我希望结果如下:
ananya
Athira
bala
Run Code Online (Sandbox Code Playgroud) 在任何需要运行时值来构造特定依赖项的地方,Abstract Factory就是解决方案.
我的问题是:为什么很多来源都赞成FactoryInterface而不是FactoryDelegate来实现这种模式?两种解决方案的优缺点是什么?
这是一个了解我的意思的例子
如果您的服务需要具有特定上下文的存储库,则服务构造函数需要工厂来创建或访问其存储库.
对此的常见解决方案是创建这样的RepositoryFactoryInterface.
public IRepositoryFactory {
IRepository Create(ContextInformation context);
}
public class MyService {
private IRepositoryFactory repositoryFactory;
public MyService(IRepositoryFactory repositoryFactory)
{
this.repositoryFactory = repositoryFactory:
}
public void DoSomeService()
{
ContextInformation context = ....;
IRepository repository = this.repositoryFactory.Create(context);
repository.Load(...);
...
repository.Save(...);
}
}
Run Code Online (Sandbox Code Playgroud)
您还需要以某种方式实现IRepositoryFactory接口
public MyEf4RepositoryFactory : IRepositoryFactory
{
IRepository Create(ContextInformation context)
{
return new MyEf4Repository(context);
}
}
Run Code Online (Sandbox Code Playgroud)
...并在应用程序中使用它
public void main()
{
IRepositoryFactory repoFactory = new MyEf4RepositoryFactory();
IService service = new MyService(repoFactory);
service.DoSomeService();
}
Run Code Online (Sandbox Code Playgroud)
-----主流解决方案结束------ …
我不明白如何在以下代码中遵守TDD FIRST原则.
以下是关于FIRST原则的说明:
- 快速:快速运行(子集)测试(因为您将一直运行它们)
- 独立:没有测试依赖于其他测试,因此可以按任何顺序运行任何子集
- 可重复:运行N次,得到相同的结果(以帮助隔离错误并启用自动化)
- 自检:测试可以自动检测是否通过(没有人工检查输出)
- 及时:与被测代码同时写入(使用TDD,先写!)
测验问题:
莎莉希望她的网站在每个月的第一个星期二有特别的布局.她有以下控制器和测试代码:
Run Code Online (Sandbox Code Playgroud)# HomeController def index if Time.now.tuesday? render 'special_index' else render 'index' end end # HomeControllerSpec it "should render special template on Tuesdays" do get 'index' if Time.now.tuesday? response.should render_template('special_index') else response.should render_template('index') end end没有遵循什么第一原则?
- 快速
- 独立
- 重复
- 自检
- 及时
我不确定哪个FIRST原则没有被遵守:
'special_index'如果它是星期二,'index'如果它不是星期二.我在测验中选择了Timely,因为测试代码是在控制器代码之后呈现的.但我提出的问题是错误的,回想起来,这不是一个好的选择.我不确定这里没有遵循哪个FIRST原则.
编辑XAML文件时,我注意到以下错误:
System.ObjectDisposedException occurred
Message=Cannot access a disposed object.
Object name: 'FileCodeModel'.
Run Code Online (Sandbox Code Playgroud)
为了调试这个,我运行了另一个Visual Studios实例和"Debug-> Attach to Process"到Visual studio的实例,其中显示了异常.
我能够在启动附加到进程的新实例中捕获异常.我遇到以下异常:
System.ObjectDisposedException occurred
Message=Cannot access a disposed object.
Object name: 'FileCodeModel'.
Source=Microsoft.VisualStudio.CSharp.Services.Language
ObjectName=FileCodeModel
StackTrace:
at Microsoft.VisualStudio.CSharp.Services.Language.CodeModel.CFileCodeModel.GetCompilation(Boolean fBlockForParses)
at Microsoft.VisualStudio.CSharp.Services.Language.CodeModel.CPartialTypeCollection.EnumerateParts()
at Microsoft.VisualStudio.CSharp.Services.Language.CodeModel.CPartialTypeCollection.get_Count()
at Microsoft.VisualStudio.CSharp.Services.Language.CodeModel.CSlowSnapshot..ctor(CodeElements collection)
at Microsoft.VisualStudio.CSharp.Services.Language.CodeModel.CPartialTypeCollection.CreateSnapshot()
at Microsoft.VisualStudio.CSharp.Services.Language.CodeModel.CCollectionBase.GetEnumerator()
at EnvDTE.CodeElements.GetEnumerator()
at MS.Internal.VSSymbols.SymbolProvider.GetProperties(String fullName, Boolean isTypeDefinition, Boolean useCodeModel)
at Microsoft.Xaml.Symbols.IXamlSymbols.GetProperties(String typeName, Boolean isTypeDefinition, Boolean useCodeModel)
at MS.Internal.Design.Markup.HostedType.BuildProperties(Boolean useCodeModel)
InnerException:
Run Code Online (Sandbox Code Playgroud)
任何人都会在你的XAML中遇到这个异常,你会怎么做才能修复它.
我一直在阅读文章,观看一些屏幕演员,并玩一些示例/演示教程.
我读了一篇文章,其中有人说"不要使用太多的背景".我很好奇,所以我在SpecFlow的功能文件中尝试了它,它突出显示为一个命令.
我一直试图找到一些"小黄瓜"的语言指南,因为这是它的写作,但没有运气.
那怎么用呢?是否有任何文档可以告诉我我缺少的其他命令以及如何使用?
谢谢.
我尝试压缩消耗的Android应用程序ical4j.jar.
当我使用gradle proguardDebug我得到的proguard构建apk
finalize()clone()我已经验证了android-7支持finalize()和clone():"...\Android ...\sdk\platforms\android-7\android.jar"有方法finalize()和clone()类java.lang.Object.
你知道如何解决这个问题吗?
注意:这不是其他'proguard找不到引用方法'的重复问题,因为在我的具体情况下我认为缺少的方法应该存在.
我在用
这是proguard配置proguard-rules.txt,可能需要一些修复:
# proguard-rules.txt
## ical4j also contains groovy code which is not used in android
-dontwarn groovy.**
-dontwarn org.codehaus.groovy.**
-dontwarn org.apache.commons.logging.**
-dontwarn sun.misc.Perf
-dontnote com.google.vending.**
-dontnote com.android.vending.licensing.**
Run Code Online (Sandbox Code Playgroud)
这是我的 build.gradle
buildscript {
repositories …Run Code Online (Sandbox Code Playgroud) 我有一些默认命名空间的xml
<a xmlns='urn:test.Schema'><b/><b/></a>
Run Code Online (Sandbox Code Playgroud)
并想要数数 <b/>
我该如何定义
XmlNamespaceManager nsmgr = ????
Assert.AreEqual(2, doc.SelectNodes("//b", nsmgr).Count);
Run Code Online (Sandbox Code Playgroud)
断言变为真?
我到目前为止尝试过(使用nunit):
[Test]
[Ignore("Why does this not work?")]
public void __DoesNotWork_TestSelectWithDefaultNamespace()
{
// xml to parse with defaultnamespace
string xml = @"<a xmlns='urn:test.Schema'><b/><b/></a>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
// fails because xpath does not have the namespace
//!!!!
Assert.AreEqual(2, doc.SelectNodes("//b").Count);
// using XPath defaultnamespace
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("", "urn:test.Schema");
// This will fail with dotnet 3.5sp1. Why?
//!!!!
Assert.AreEqual(2, doc.SelectNodes("//b", nsmgr).Count);
}
[Test]
public …Run Code Online (Sandbox Code Playgroud) 如果您使用Firefox或MS Internet Explorer在本地保存HTML页面,您将获得一个HTML文件和一个包含属于该页面的图像的sidecar文件夹.
如果使用Windows资源管理器移动HTML文件,也会移动相关的边车文件夹.
我想为属于Jpeg图像的xmp - sidecar文件实现类似的行为,并包含类似于图片的信息exif.
示例:
使用Windows资源管理器,如果我移动test.html到另一个目录test-dateien,也会移动边车文件夹(在德语Windows 7上)
我想实现类似的:如果我移动test.jpg我也想移动test.xmp.
有谁知道如何做到这一点?
是否已有解决方案?
这可以用一种插件来完成吗?
我必须实施服务吗?
这可以在C#/ .Net中完成吗?
[更新:将Microsoft术语"连接文件"添加到标题]
对于个人项目,我试图检测Android设备何时与某人驾驶.我最初想过使用GPS来确定平均速度,但决定消耗功率并要求用户始终启用GPS.我听说有人可以告诉有人切换手机信号塔(在Android和iOS上),但有广播意图吗?我对Android开发很陌生,所以当我相信设备在移动的汽车中时,希望我可以注册广播接收器.
我不确定我是否可以创建自己的广播意图,并且我认为我不能依赖后台进程来始终运行,因为如果需要内存,android可能会杀死它.
作为旁注,我注意到一些应用程序,比如skype,有一个后台进程,即使我强行杀死它也会自动重启.他们如何做到这一点?我的想法是有一个广播接收器,用于设备何时移动,打开等等,以重新启动后台进程......这是他们做的吗?
感谢您的任何信息!
我有一个包含几个MSTest项目的Visual Studio 2010解决方案.其中一个测试项目需要运行特定目录中的文件.
[TestClass]
[DeploymentItem("ReportEngine.config")]
[DeploymentItem("Report Files", "Report Files")]
public class MyReportTests { }
Run Code Online (Sandbox Code Playgroud)
当我只运行此项目(或测试类)中的测试时,这些测试通过.报告文件将复制到测试执行目录.当我在解决方案中运行所有测试时,这些测试失败.报告文件不会复制到测试执行目录.
为什么会有差异,如何让两次运行部署相同的项目?