问题列表 - 第40962页

使用构造函数参数从Class创建新实例

我的情况是我的Java类需要创建大量特定类型的对象.我想给出作为参数创建的对象类的名称.另外,我需要在构造函数中为创建的类赋一个参数.我有类似的东西

class Compressor {

    Class ccos;

    public Compressor(Class ccos) {
        this.ccos = ccos;
    }

    public int getCompressedSize(byte[] array) {
        OutputStream os = new ByteArrayOutputStream();
        // the following doesn't work because ccos would need os as its constructor's parameter
        OutputStream cos = (OutputStream) ccos.newInstance();
        // ..
    }
}
Run Code Online (Sandbox Code Playgroud)

你有什么想法我可以解决这个问题吗?

编辑:

这是一个研究项目的一部分,我们需要评估具有多个不同输入的多个不同压缩机的性能.Class ccosOutputStream从Java的标准库,Apache Compress Commons或lzma-java 压缩而来的.

目前我有以下似乎工作正常.其他想法是受欢迎的.

OutputStream os = new ByteArrayOutputStream();
OutputStream compressedOut = (OutputStream) ccos.getConstructor(OutputStream.class).newInstance(os);
final InputStream sourceIn = new ByteArrayInputStream(array);
Run Code Online (Sandbox Code Playgroud)

java reflection

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

为具有浮点成员的类实现"容忍"`equals`和`hashCode`

我有一个有float田地的课.例如:

public class MultipleFields {
  final int   count;
  final float floatValue;

  public MultipleFields(int count, float floatValue) {
    this.count = count;
    this.floatValue = floatValue;
  }

}
Run Code Online (Sandbox Code Playgroud)

我需要能够按值比较实例.现在我该如何正确实施 equals&hashCode

通常的方式来实现equals,并hashCode是只考虑各个领域.例如,Eclipse将生成以下内容equals:

  public boolean equals(Object obj) {
    // irrelevant type checks removed
    ....
    MultipleFields other = (MultipleFields) obj;
    if (count != other.count)
      return false;
    if (Float.floatToIntBits(floatValue) != Float.floatToIntBits(other.floatValue))
      return false;
    return true;
  }
Run Code Online (Sandbox Code Playgroud)

(和类似的hashCode,基本上计算count* 31 + Float.floatToIntBits(floatValue)).

这个问题是我的FP值受到舍入错误的影响(它们可能来自用户输入,来自数据库等).所以我需要一个"宽容"的比较.

常见的解决方案是使用epsilon值进行比较(参见 …

java floating-point equals hashcode

10
推荐指数
1
解决办法
1369
查看次数

Vim:如何设置高效的自动完成配置?

我现在一直在使用Vim并且喜欢它,但是当我使用其他编辑器时我注意到的一件事是我从未真正实现自动完成工作效率很高.我有supertab和snipmate工作,我有我正在使用的任何语言的标签设置,但不知何故,使用这么多似乎有点太麻烦,除了长方法名称,我通常只是避免自动完成.

有没有人在vim中设置快速,全面的自动完成功能?特别:

  • 目前,我点击"tab"自动完成类/方法/变量名称并生成片段,但是Ctrl + X + O用于内置语言命令.我宁愿按Tab键查看所有内容.

  • 订购似乎并不太聪明.非常常见的东西通常隐藏在一堆很少使用的命令中间.

  • 我已经设置了autocomplpop以显示我正在键入的潜在自动填充功能,但我必须按Tab键两次才能接受第一个条目.一个相当单一的标签吧.

那么,有关在vim中设置高效,全面的自动完成配置的任何提示吗?我知道这个问题有点模糊 - 但是如果有人对他们如何自动完成的概述有了概述,和/或指南的链接,我将不胜感激.

vim autocomplete

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

使用RhinoMocks,如何断言调用了几种方法之一?

考虑以下服务接口:

public interface IServiceA
{
    void DoSomething(string s);
    void DoSomething(string s, bool b);
}

public interface IServiceB
{
    void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

IServiceB的实现取决于IServiceA,如下所示:

public class ServiceB : IServiceB
{
    private IServiceA _serviceA;

    public ServiceB(IServiceA serviceA)
    {
        _serviceA = serviceA;
    }

    public void DoSomething()
    {
        _serviceA.DoSomething("Hello", true);
    }
}
Run Code Online (Sandbox Code Playgroud)

就是 依赖项被注入到构造函数中。

现在考虑对该DoSomething()方法进行单元测试。我想断言,调用了IServiceA中的一种重载DoSomething方法,但是遵循一个普遍的原则,即单元测试对所测试方法的内部工作不应该了解太多,我希望与哪一个无关。称为两个重载。考虑以下单元测试:

[TestFixture]
public class ServiceBTests
{
    [Test]
    public void DoSomething_CallsServiceA()
    {
        var serviceAMock = MockRepository.GenerateMock<IServiceA>();
        var service = new ServiceB(serviceAMock);

        service.DoSomething();

        // Problem: How to check if EITHER:
        serviceAMock.AssertWasCalled(s …
Run Code Online (Sandbox Code Playgroud)

unit-testing assert dependency-injection rhino-mocks

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

C#项目没有看到Excel COM参考

我正在使用Visual Studio 2010 Express Edition编写应用程序.我在使用Excel Automation时遇到问题.我添加了一个COM参考Microsoft Excel 12.0对象库.它添加了以下参考文献:

Microsoft.Office.Core
Microsoft.Office.Interop.Excel 
VBIDE
Run Code Online (Sandbox Code Playgroud)

我还添加了一个using子句:

using Microsoft.Office.Interop.Excel;
Run Code Online (Sandbox Code Playgroud)

然后我从微软获取了一个代码片段:

m_objExcel = new Excel.Application();
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));
Run Code Online (Sandbox Code Playgroud)

并强调Excel和喊叫:

找不到类型或命名空间名称"Excel"(您是否缺少using指令或程序集引用?)

我安装了Office 2007 Professional Plus和".net 2.0 Microsoft Forms的互操作性组件"(抱歉,从波兰语翻译).目标框架是.NET 4 Client Profile.

什么想法可能是错的?

c# excel automation reference visual-studio

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

NoSQL是否适用于社交网络类应用程序

我正在计划开发社交网络应用程序,我想尝试一个NoSQL解决方案可以任何人建议NoSQL是开发这类应用程序的合适选择.

java mysql scala mongodb nosql

9
推荐指数
2
解决办法
6640
查看次数

HEAD和master之间的区别

HEADmasterGit有什么区别?

我在GitHub上做了一个项目的克隆,并希望将我的更改推送到远程.但是我应该推动哪一个?

截图

git github master head

172
推荐指数
3
解决办法
8万
查看次数

.toFixed(2)不工作?

有人可以请赐教我为什么我的toFixed()不起作用?

$("#amount").blur(function() {
        if ($('#amount').val() % 100 != 0) {
        alert("must be a multiple of 100, please try again")
        } else {
        $('#fee').val(parseFloat($('#amount').val()) * .035).toFixed(2);
        }

        });
Run Code Online (Sandbox Code Playgroud)

jquery

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

在BIDS中使用存储过程作为OLE DB源

我正在测试SSIS包和存储过程,因为我只是一个初学者.我需要做的是使用我在源数据库上安装的存储过程来返回数据集然后我需要一个ssis包来使用存储过程返回的数据集作为OLE DB源来填充第二个目标表.

基本上我有2个表: - test_source - test_destination

test_source有一个名为Companies with 3 rows的表 - (ID,Name,Established).我已经设置了一个存储过程(spGetCompanies)来将该表中的所有记录返回到结果集中.

然后在BIDS中我有一个SSIS包,它从test_source表中获取数据(在本例中是spGetCompanies SP)并将其插入到test_destination表中.

任何人都可以告诉我如何使用spGetCompanies存储过程作为OLE DB源?

奇安

sql ssis stored-procedures

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

rails 3中的部分表单需要不同的链接,具体取决于New或Edit

我有一个由Rails 3脚手架生成的基本视图设置.它给了我一个局部视图_form.html.erb.我的edit.html.erb和我的new.html.erb都渲染了这个局部视图.

在局部视图中,我希望有一个link_to转到不同的路径,具体取决于它是由视图还是编辑视图呈现.

是否有捷径可寻?

我的代码目前看起来像这样,但不允许不同的路径.

<%= f.submit %> or <%= link_to 'Go back', models_path %>
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我试图将它们发送回他们来自的页面(它们来自不同的地方以进行添加和编辑)

ruby-on-rails link-to ruby-on-rails-3

9
推荐指数
2
解决办法
7471
查看次数