小编Cod*_*dor的帖子

Java8中的"Autocloseable"数组或集合

Autocloseable应始终使用try-with-resources.至少Intellij检查表明了这一点.所以,如果我有一个生成Foo该实现的代码,Autocloseable我应该这样做:

try (final Foo foo = getFoo()) {
    foo.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

但是如果我有功能返回Foo[]怎么办?或接受Foo[](或Collection<Foo>)作为其参数的函数?

我怎么用它try-with-resources?查看以下功能:

Foo[] getFoos();
doAll(Foo... foo);
Run Code Online (Sandbox Code Playgroud)

我想做点什么 doAll(getFoos())

我怎样才能做到这一点?

java java-8 try-with-resources autocloseable

7
推荐指数
2
解决办法
1322
查看次数

用于整数列表的良好散列函数,其中顺序不会改变值

给定一组整数,一个“功能组”,是否有更好的方法来获取整数的 GetHashCode,其中数字的位置不影响哈希?

void Main()
{
    int[] ints = { 10001, 10002, 10003, 10004, 10005 };

    int hash = GetHashCode(ints);

    Console.WriteLine("hash={0}", hash);
}

int GetHashCode(IEnumerable<int> integers)
{
    IEnumerator<int> intEnum = integers.GetEnumerator();

    if(intEnum.MoveNext()==false) return 0;

    int hash = 0;
    unchecked {
        hash = intEnum.Current.GetHashCode();
        for(;intEnum.MoveNext()==true;)
            hash = 31 * hash + intEnum.Current.GetHashCode();
    }

    return hash;
}
Run Code Online (Sandbox Code Playgroud)

这个输出是:hash=954101523 如果我交换 10003 和 10002 我得到:hash=954130353

除了在获取散列之前对列表进行排序之外,如果列表位置中的项目发生变化,是否有更好的选择不会改变?

整数列表基本上代表一组作为“功能组”的记录 ID,因此“功能组”实际上是关键,而不是真正依赖于顺序

c#

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

在给定的 N 辆汽车的给定序列中找出可能的最大紫色汽车数量。(见描述)

一排有 N 辆汽车,从 1 到 N 编号。一个人拍了 M 辆汽车的照片。对于每张照片,出现在其中的汽车由元组 (i, j) 给出,这意味着从第 i 辆汽车到第 j 辆汽车的所有汽车都将出现在该照片中。

请注意,所有照片不必涵盖每辆车。一辆汽车可以出现在不止一张照片中。

假设每张照片恰好包含1辆紫色汽车。找出可能的最大数量的紫色汽车。如果不可能,则打印 -1。

输入:第一行包含 N 和 M。下一行包含 M 对 (x, y),它们表示包含从第 x 辆汽车到第 y 辆汽车的汽车的照片。输出:可能的紫色汽车的最大数量。

例子 :

输入

5 1

(3 5)

输出:3

说明:3到5只有一辆车可以是紫色的。为了最大化紫色汽车的数量,汽车 1 和汽车 2 将是紫色的。

输入

5 1

(4 4)

输出:5

输入

5 3

(1 4), (3 5), (3, 4)

输出:1

说明: 3 或 4 都可以是紫色的车。

输入

5 2

(1, …

algorithm optimization data-structures

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

使用Hangfire:泛型Enqueue <T>方法抛出异常

我有一个安装了Hangfire.Core和Hangfire.SqlServer软件包的简单.NET 4.5控制台应用程序.

在我的主要方法中,我将这样的后台作业排入队列:

BackgroundJob.Enqueue<Test>((t) => Console.WriteLine(t.Sum(3,4)));
Run Code Online (Sandbox Code Playgroud)

我的Test类看起来像这样:

public class Test
{
    public Test(){ }

    public int Sum(int a, int b)
    {
        return a + b;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我F5我的程序时,我在Enqueue的行上得到一个例外:

"System.Core.dll中发生了'System.InvalidOperationException'类型的未处理异常附加信息:从范围''引用的'HangfireTest.Test'类型的变量't',但未定义"

当我用"new"在代码中创建我的Test类并使用非泛型Enqueue方法时 - 一切正常:

BackgroundJob.Enqueue(() => Console.WriteLine(new Test().Sum(3,4)));
Run Code Online (Sandbox Code Playgroud)

但我需要一个通用的,因为我想创建一个接口ITest并使用依赖注入来做这样的事情:

BackgroundJob.Enqueue<ITest>((t) => Console.WriteLine(t.Sum(3,4)));
Run Code Online (Sandbox Code Playgroud)

那么,我在这里做错了什么?

c# hangfire

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

门户网站用户如何在Odoo 8中修改自己的合作伙伴数据?

我试图创建一个模块,门户网站用户可以修改相关的合作伙伴数据.但我收到一个安全错误,只有管理员用户可以修改配置.

文件".../server/openerp/addons/base/res/res_config.py",第541行,执行提升openerp.exceptions.AccessError(_("只有管理员可以更改设置"))

我尝试过这样的安全访问:

access_config_portal,portal_partner_config.settings,model_portal_partner_config_settings,base.group_portal,1,1,0,0

但是没有用......我认为这是因为错误显示在res_config.py执行函数时它会检查用户是否为SUPERUSER:

 if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
            raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
Run Code Online (Sandbox Code Playgroud)

像这样:

class Configuration(models.TransientModel):
    _inherit = 'res.config.settings'
    _name = 'portal_partner_config.settings'

    name = fields.Char()
    street = fields.Char()
    city = fields.Char()

    @api.model
    def get_default_inova_values(self,fields):
       users = self.pool.get('res.users')
       current_user = users.browse(self._cr, self._uid, self._uid, context=self._context)
       name = current_user.partner_id.name
       street = current_user.partner_id.street
       city = current_user.partner_id.city

       return {
            'name': name,
            'street': street,
            'city': city,}

    @api.one
    def set_inova_values(self):
        users = self.pool.get('res.users')
        current_user = users.browse(self._cr, self._uid, self._uid, context=self._context) …
Run Code Online (Sandbox Code Playgroud)

python openerp odoo-8

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

预编译头和预编译二进制文件之间的区别是什么

Wiki引用提到某些头文件有时可能包含大量源代码,因此将它们作为预编译头文件可以节省编译时间. https://en.wikipedia.org/wiki/Precompiled_header

如果预编译头可以包含已编译的源代码,那么它与预编译的二进制文件有何不同.

c++

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

有没有办法通过adsense从特定页面获取收入?

我试图找到一种方法来获得我的网站页面产生的收入.

例如,我的网站有10页(a,b,c,....),它们都有广告.

我需要计算页面a,b,c等产生的收入.

喜欢 :

Page a = 10$
Page b = 12.5$
Run Code Online (Sandbox Code Playgroud)

adsense adsense-api

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

WCF 客户端身份验证方案“基本”。到一个java服务器

我正在尝试使用基本身份验证来使用 Java Web 服务。

使用 Soap UI,我可以在运行具有基本身份验证的请求时收到响应。

问题是使用 VS studio 我在使用基本身份验证时遇到此错误

“HTTP 请求未经客户端身份验证方案 'Basic' 授权。从服务器收到的身份验证标头是 'Basic realm='weblogic'

enter code here

<security mode="TransportCredentialOnly">
  <transport clientCredentialType="Basic" proxyCredentialType="None" realm="" />
  <message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
Run Code Online (Sandbox Code Playgroud)

wcf soapui

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

使用主定理的算法成本

您好,任何人都可以帮我解决这个问题

T(n)=T(n^(1/2)) + theta (lg lg n)
Run Code Online (Sandbox Code Playgroud)

这就是我到目前为止所做的

m = lg n
s(m)=s(m/2) + theta (lg m)
Run Code Online (Sandbox Code Playgroud)

在这里应用主定理

a=1 b=2
m^log 2 (1) = m^0 =1 
Run Code Online (Sandbox Code Playgroud)

现在卡住了.

algorithm master theorem

5
推荐指数
0
解决办法
145
查看次数

if(counter&(1 << j)).这句话是什么意思,它是如何运作的?

我正在研究子序列的算法.请告诉我这句话的意思.程序如下.

void printSubsequences(int arr[], int n)
{
    unsigned int opsize = pow(2, n);

    for (int counter = 1; counter < opsize; counter++)
    {
        for (int j = 0; j < n; j++)
        {
            if (counter & (1<<j))
                cout << arr[j] << " ";
        }
        cout << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

c

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