小编k3b*_*k3b的帖子

按字母顺序排列arraylist(不区分大小写)

我有一个字符串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)

java sorting arraylist

115
推荐指数
5
解决办法
22万
查看次数

IoC Factory:接口与代表的优缺点

在任何需要运行时值来构造特定依赖项的地方,Abstract Factory就是解决方案.

我的问题是:为什么很多来源都赞成FactoryInterface而不是FactoryDe​​legate来实现这种模式?两种解决方案的优缺点是什么?

这是一个了解我的意思的例子

如果您的服务需要具有特定上下文的存储库,则服务构造函数需要工厂来创建或访问其存储库.

对此的常见解决方案是创建这样的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)

-----主流解决方案结束------ …

.net c# design-patterns dependency-injection ioc-container

27
推荐指数
2
解决办法
3817
查看次数

TDD FIRST原则

我不明白如何在以下代码中遵守TDD FIRST原则.

以下是关于FIRST原则的说明:

  • 快速:快速运行(子集)测试(因为您将一直运行它们)
  • 独立:没有测试依赖于其他测试,因此可以按任何顺序运行任何子集
  • 可重复:运行N次,得到相同的结果(以帮助隔离错误并启用自动化)
  • 自检:测试可以自动检测是否通过(没有人工检查输出)
  • 及时:与被测代码同时写入(使用TDD,先写!)

测验问题:

莎莉希望她的网站在每个月的第一个星期二有特别的布局.她有以下控制器和测试代码:

# 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
Run Code Online (Sandbox Code Playgroud)

没有遵循什么第一原则?

  1. 快速
  2. 独立
  3. 重复
  4. 自检
  5. 及时

我不确定哪个FIRST原则没有被遵守:

  • 快速:代码似乎很快,因为它的测试并不复杂.
  • 独立:测试不依赖于其他测试.
  • 可重复:每次测试都会得到相同的结果.'special_index'如果它是星期二,'index'如果它不是星期二.
  • 自检:测试可以自动检测是否通过.
  • 及时:代码和测试代码同时显示在此处.

我在测验中选择了Timely,因为测试代码是在控制器代码之后呈现的.但我提出的问题是错误的,回想起来,这不是一个好的选择.我不确定这里没有遵循哪个FIRST原则.

tdd

23
推荐指数
1
解决办法
1万
查看次数

在Visual Studio 2010中调试和修复ObjectDisposedException

编辑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中遇到这个异常,你会怎么做才能修复它.

debugging wpf xaml exception visual-studio-2010

16
推荐指数
1
解决办法
3428
查看次数

SpecFlow - 如何在功能文件中正确使用"Background:"命令?

我一直在阅读文章,观看一些屏幕演员,并玩一些示例/演示教程.

我读了一篇文章,其中有人说"不要使用太多的背景".我很好奇,所以我在SpecFlow的功能文件中尝试了它,它突出显示为一个命令.

我一直试图找到一些"小黄瓜"的语言指南,因为这是它的写作,但没有运气.

那怎么用呢?是否有任何文档可以告诉我我缺少的其他命令以及如何使用?

谢谢.

.net bdd specflow gherkin

15
推荐指数
1
解决办法
2万
查看次数

如何修复proguard警告'无法找到引用的方法'用于类java.lang.Object的现有方法'clone'和'finalize'

我尝试压缩消耗的Android应用程序ical4j.jar.

当我使用gradle proguardDebug我得到的proguard构建apk

  • 警告:net.fortuna.ical4j.model.CalendarFactory:在库类java.lang.Object中找不到引用的方法'void finalize()'
    • 另外6个类似的警告 finalize()
  • 警告:net.fortuna.ical4j.model.CalendarFactory:在库类java.lang.Object中找不到引用的方法'java.lang.Object clone()'
    • 另外6个类似的警告 clone()

我已经验证了android-7支持finalize()clone():"...\Android ...\sdk\platforms\android-7\android.jar"有方法finalize()clone()java.lang.Object.

你知道如何解决这个问题吗?

注意:这不是其他'proguard找不到引用方法'的重复问题,因为在我的具体情况下我认为缺少的方法应该存在.

我在用

  • proguard-4.11 with
  • gradle产出1.11
    • Groovy:1.8.6
    • Ant:2013年7月8日编译的Apache Ant(TM)版本1.9.2
    • 常春藤:2.2.0
    • JVM:1.7.0_25(Oracle Corporation 23.25-b01)
    • 操作系统:Windows 7 6.1 amd64
  • ical4j.jar 1.0.5

这是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)

java android proguard gradle ical4j

14
推荐指数
1
解决办法
3万
查看次数

具有默认命名空间的Xml-SelectNodes通过XmlNamespaceManager无法按预期工作

我有一些默认命名空间的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)

.net c# xpath unit-testing

13
推荐指数
1
解决办法
2万
查看次数

如何扩展ms-explorer以自动处理属于jpg的"连接文件"/ sidecar文件/ xmp?

如果您使用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术语"连接文件"添加到标题]

c# windows plugins file-manager file-management

12
推荐指数
1
解决办法
297
查看次数

检测Android设备何时处于移动的汽车中

对于个人项目,我试图检测Android设备何时与某人驾驶.我最初想过使用GPS来确定平均速度,但决定消耗功率并要求用户始终启用GPS.我听说有人可以告诉有人切换手机信号塔(在Android和iOS上),但有广播意图吗?我对Android开发很陌生,所以当我相信设备在移动的汽车中时,希望我可以注册广播接收器.

我不确定我是否可以创建自己的广播意图,并且我认为我不能依赖后台进程来始终运行,因为如果需要内存,android可能会杀死它.

作为旁注,我注意到一些应用程序,比如skype,有一个后台进程,即使我强行杀死它也会自动重启.他们如何做到这一点?我的想法是有一个广播接收器,用于设备何时移动,打开等等,以重新启动后台进程......这是他们做的吗?

感谢您的任何信息!

android

11
推荐指数
1
解决办法
2万
查看次数

在解决方案中运行所有测试时,为什么MSTest DeploymentItem会失败?

我有一个包含几个MSTest项目的Visual Studio 2010解决方案.其中一个测试项目需要运行特定目录中的文件.

[TestClass]
[DeploymentItem("ReportEngine.config")]
[DeploymentItem("Report Files", "Report Files")]
public class MyReportTests { }
Run Code Online (Sandbox Code Playgroud)

当我只运行此项目(或测试类)中的测试时,这些测试通过.报告文件将复制到测试执行目录.当我在解决方案中运行所有测试时,这些测试失败.报告文件不会复制到测试执行目录.

为什么会有差异,如何让两次运行部署相同的项目?

mstest visual-studio-2010

11
推荐指数
1
解决办法
2026
查看次数