小编Eli*_*jah的帖子

如何在Ninject中使用装饰器声明责任链?

我想在Ninject中使用装饰器声明一个责任链.

以前有人这样做过吗?

谢谢.

c# ninject inversion-of-control chain-of-responsibility

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

是否有可用于Java的元语言允许您访问对象复杂的层次结构?

我正在为当前项目评估复杂对象层次结构模型的一些潜在实现.我想知道是否有一个xpath风格的元语言或类似的东西,这将允许我查询这些对象链接.

此外,我确信有一些非常具体的术语用于我所问的问题 - 我只是不知道.

要求:

  • 必须用Java完成(或至少编译为Java字节码).
  • 对象将通过n个可能的链接以层次结构相互关联.obj1-> obj2-> OBJ 3 - > ...
  • 我们需要能够根据对象属性或其与其他对象的关系查找层次结构中的任何对象.
  • 对象的类型相同.
  • 分层查找应该能够在运行时发生.

我想我可以在这里推出自己的解决方案,但我很好奇,如果比我聪明的人已经想出了什么.

在看到一些答案后,我想我可能需要更多地澄清我的问题.具体来说,此工具将用于遍历作为父对象的不同版本的一组对象.

例如:

[对象1 prop1 ="foo"prop2 ="bar"prop3 ="zoop"]

↓继承上述对象↓

[对象2 prop1 ="foo和某事"prop2 ="bar"prop3 ="zoop"]

↓继承上述对象↓

[对象3 prop1 ="foo和某事"prop2 ="bar"prop3 ="zoop 24"]

java oop

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

在Java中禁用库?

假设我有一个网页,人们提交java源代码(一个简单的类).我想在我的服务器上编译和运行代码,但自然我想阻止人们伤害我的服务器,那么如何禁用java.io.*我选择的其他功能/库?

关于源代码的正则表达式将是一种方式,但如果可以将一些参数传递给javac或者它会更"好" java.

(这在创建AI竞赛时可能很有用,或者在实现单个类的情况下,但我希望防止篡改java环境.)

java security

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

是否有可用于Java的HashMap的并行处理实现?它甚至可能吗?

正在寻找神奇的ParallelHashMap类

更简洁一点,您可以使用多个线程来加速HashMap查找吗?是否有任何实现已经执行此操作?

在我的项目中,我们需要在内存中维护一个大的对象映射.我们从不在创建地图后修改地图,因此地图严格是只读的.但是,此映射上的读取和查找性能对于应用程序的成功至关重要.安装应用程序的系统通常具有许多可用的硬件线程.然而,我们的查找仅使用单个线程从HashMap中检索值.使用多个线程(可能在池中)的分而治之的方法是否有助于提高查找速度?

我的大多数谷歌搜索都没有结果 - 返回了很多关于并发问题而不是解决方案的结果.任何建议都会受到赞赏,但如果您知道开箱即用的解决方案,那就太棒了.

另外值得注意的是,所有键和值都是不可变的.散列码值是预先计算的,并在实例化时存储在对象本身中.

至于实现的细节,Map中有大约35,000个项目.键和值都是对象.键是自定义查找键,值是字符串.目前,我们每秒可处理大约5,000次查找(这包括一些其他逻辑的开销,但主要的瓶颈是地图实现本身).但是,为了满足我们未来的性能需求,我希望每秒可以获得大约10,000次查找.按照大多数正常标准,我们目前的实施速度很快 - 只是我们需要它更快.

在我们35,000个值的Map中,我们平均有一个哈希码冲突,所以我猜测哈希码的分布相当合理.

java collections parallel-processing multithreading

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

C++中的Doubleton模式

我知道C++中的单例模式,但是如何获得对象的两个实例?有没有这样的模式,我们可以很容易地获得两个对象?

我能想到的逻辑是,我可以改变单例模式本身,在类中创建两个对象.这是有效的,但如果需求增长,就像我需要3个或仅4个对象一样,那么满足这种要求的设计模式是什么?

c++ design-patterns

3
推荐指数
3
解决办法
1961
查看次数

如何解释Perl的Benchmark模块报告的基准时间?

摘要

当我使用Perl的Benchmark实用程序执行一个非常简单的程序时.我得到的值不是(显示为)毫秒或纳秒.返回的基准数据对我没用,因为我不知道如何解释它.

例:

use Benchmark;

my $start = Benchmark->new;
print "foo!";
my $end = Benchmark->new;

my $diff = timediff($end, $start);

print timestr($diff);
Run Code Online (Sandbox Code Playgroud)

返回: foo! 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)

不同的字段意味着什么:Wallclock秒,Usr,Sys,CPU?它们可以外推得到毫秒值吗?现在,对于我的基准测试,我需要的只是一次执行的真实世界时间,而不需要考虑基准测试的一些更深奥的方面.

perl benchmarking system

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

Rails 组织单元测试的方式是什么?

在 Rails 项目中创建单元测试时,我问自己的第一个问题是“组织单元测试的约定是什么”,因为几乎所有其他内容都是由约定决定的。另外,我很好奇 MiniTest、TestUnit 和 Rspec 之间的约定是否发生变化。

到目前为止,我所做的是将 Rails 目录结构镜像到 test/unit 目录中,如下所示:

[Rails Root]
 /lib/
  ./postgres.rb
  ./awesome_parser.rb
 /app/helpers
  ./psychic_helper.rb

 /test/unit/
  ./lib/postgres.rb
  ./lib/awesome_parser.rb
  ./app/helpers/psychic_helper
Run Code Online (Sandbox Code Playgroud)

组织测试的最传统方式是什么,这样当其他人加入这个项目时他们就不会咒骂我的名字?

ruby unit-testing ruby-on-rails testunit

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

如何从Java中的超类的上下文中检索最低子类的名称?

合理的

我想在几个超类上有更详细的日志调试/日志记录输出,因此子类名称实际上不会影响实时性能,也不会影响应用程序逻辑.我也认为通常这样做是相当糟糕的设计,但是我真的希望在开发运行期间记录这些信息.

假设我有一个如下所示的简单类结构,如何将子类的名称拉入超类而不必显式传递引用?

public abstract AbstractClass {
    private Logger logger = LoggerFactory.getLogger(getClass());

    public AbstractClass() {}

    public void execute(ContextObject context) {
        if (logger.debuggingEnabled()) {
            String invokingClassName = ""; // <-- how do I get this?
            logger.debug("Executing {}", invokingClassName);
        }
        // shared application logic is here...
    }
}

public MyClass extends AbstractClass {
    public MyClass() {}

    @Override
    public void execute(ContextObject context) {
        super.execute(context);
        // application logic...
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾经使用过解析堆栈跟踪,我怀疑如果我想要这些信息,那就是我必须走的路线.有谁知道一个库会为我做这个或一个很好的代码片段?

java debugging stack-trace

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

句法特征"long foo = 12L"的技术名称是什么?在Java中使用强化编码值进行样式转换?

今天,我试图将一个硬编码的值转换成一个短的,而S则不起作用.所以,我去搜索它,但我意识到我甚至不知道Java语法的这个特性是什么.它有名字吗?如果没有,是否至少列出了所有可能的方法来转换硬编码数值?

Epilouge

得到答案"文字"后,我能够回答关于短裤的问题.如果您想知道,Java中没有简短的文字.你只需要明确地将它强制转换为:(short)12.

java syntax literals

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

如何让注入的记录器在grails中工作?

我是Grails的绝对初学者,而且我绊倒了应该很容易的东西.我一直在关注控制器动态方法的这个页面,我看到在那里登录.如何让我的控制器接收注入的记录器?所以,这就是我的控制器所拥有的一切:

package my.app

class LinkRewritterController {
    def index = { }

    // How do make the injected logger work?
    def logMe() {
        log.debug "Foo value"
    }
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

grails groovy logging dependency-injection

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

如何使用块/ lambda表达式从Ruby中的数组中删除相同值的n个元素?

我正在学习Ruby,我正在尝试用Ruby方式思考.但是,尽我所能,我无法解决这个问题:

例如,我有以下源数组:

a = [1, 3, 5, 4, 5, 5, 7, 5]

# param 1 = number matching, param 2 times matching
b = a.remove_repeated(5, 3)
Run Code Online (Sandbox Code Playgroud)

然后b的值将是:

b = [1, 3, 4, 7, 5]
Run Code Online (Sandbox Code Playgroud)

在我尝试匹配的只有两个值的情况下,我希望它们都被删除.如:

a = [1, 4, 8, 4, 9, 2]
b = a.remove_repeated(4, 3)
Run Code Online (Sandbox Code Playgroud)

然后b的值将是:

a = [1, 8, 9, 2]
Run Code Online (Sandbox Code Playgroud)

我知道如何以迭代和递归方式执行此操作.相反,我正在寻找一种Rubyesque方式.

ruby lambda

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

如何在Java中自定义ThreadFactory的子线程的所有名称?

如果我扩展现有的ThreadFactory实现,我怎样才能确保创建的所有线程都具有相同的前缀?我厌倦了查看Thread-9我的日志,并希望更容易区分线程.

有没有人对如何解决这个问题有任何建议?

java multithreading

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