小编Dim*_* K.的帖子

合并两个复杂的数据结构

我无法找到以下问题的解决方案:

可以说我有一张地图:

(def defaults {
  :name    "John"
  :surname "Doe"
  :info    {:date-of-birth "01-01-1980"
            :registered    [{:type "newsletter" :name "breaking news" }]}
})
Run Code Online (Sandbox Code Playgroud)

然后我传递一个类似的结构化地图,但我想连接向量并覆盖其余的键:

(def new {
  :name    "Peter"
  :info    {:date-of-birth "11-01-1986"
            :registered    [{:type "alert" :name "mobile-alert" }]}
})
Run Code Online (Sandbox Code Playgroud)

我想要这个结果:

 {:name    "Peter"
  :surname "Doe"
  :info    {:date-of-birth "11-01-1986"
            :registered    [{:type "newsletter" :name "breaking news" }
                            {:type "alert"      :name "mobile-alert" }]}}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用静态语法轻松完成此操作,例如:

(reduce conj (get-in defaults [:info :registered]) (get-in new [:info :registered]))
Run Code Online (Sandbox Code Playgroud)

(可能有更好的方法...)但我希望更多具有以下属性的动态函数:

  1. 保留两张地图上的所有按键,而不知道结构
  2. 使用右侧地图中的值更新任何键
  3. 如果一个键的val是一个向量,那么conj带有右向量矢量的向量(如果当然存在适当的键)

我在这里先向您的帮助表示感谢 :)

clojure

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

CDI 中是否可以注入通用接口实现?

我正在尝试创建一个类似于以下内容的类型转换器:

public interface ConvertToString<T> {
    String convert (T value);
}

public class ConvertLongToString implements ConvertToString<Long> {
    @Override
    public String convert (Long value) {
        return value.toString();
    }
}

public class Foo<T> {
    @Inject
    @Any
    private Instance<ConvertToString<T>> instance;

    private T value;

    public String getValue() {
        return instance.get().convert(value);
    }

    public void setValue(T value) {
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,我希望 的 实例Foo<Long>知道如何通过注入正确的转换器来转换值。

是否可以像我所展示的那样使用 CDI,甚至通过迭代实例列表来实现?

我想要构建类似于 Bean Validation 框架的东西,您可以在其中为多种类型创建相同注释的验证器(当然您有...... @ValidatedBy

cdi jakarta-ee

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

如何在JBoss 6.4中禁用javax.validation.api

类似的问题:

如何在JBoss EAP 6.4.0中使用bean验证1.1?

如何在jboss EAP 6.3上更改bean验证版本?

你能在JBoss EAP 6.4.4中使用bean验证1.1(JSR 349)吗?

如果我们可以在JBoss 6.x中使用Bean Validation 1.1,似乎存在一些不确定性.

我目前的jboss-deployment-structure.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
  <deployment>
    <dependencies>
      <!-- list of modules taken from https://access.redhat.com/articles/1122333 -->
      <module name="javax.activation.api" />
      <module name="javax.annotation.api" />
      <module name="javax.ejb.api" />
      <module name="javax.el.api" />
      <module name="javax.enterprise.api" />
      <module name="javax.enterprise.deploy.api" />
      <module name="javax.faces.api" />
      <module name="javax.inject.api" />
      <module name="javax.interceptor.api" />
      <module name="javax.jms.api" />
      <module name="javax.jws.api" />
      <module name="javax.mail.api" />
      <module name="javax.management.j2ee.api" />
      <module name="javax.persistence.api" />
      <module name="javax.resource.api" />
      <module name="javax.rmi.api" />
      <module …
Run Code Online (Sandbox Code Playgroud)

java jboss java-ee bean-validation jboss-eap-6

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

从超类型转回给孩子

假设我有一个超级类型(Shape)和两个孩子(如Square,Circle).

我想做这样的事情:

Shape shape = someObject.getShape();

if (shape instanceof Square){
    shape = (Square) shape;
    // do this
} else if (shape instanceof Circle) {
    shape = (Circle) shape;
    // do that
}
Run Code Online (Sandbox Code Playgroud)

此外,由于获取实例似乎不是正确的OO原则,还有另一种方法吗?干杯.

编辑.我不是试图在它们上调用方法,我想将它们传递给一些需要特定子类型的方法.

edit2基本上我有一个Shape类型的集合,所以我可以在其中包含两种类型的子类型.但是当涉及到一点处理时,我需要知道这两个子类中的哪一个,所以我可以将它传递给一个将子类型作为参数的方法.我可以轻松地使用超类型作为参数,但这不安全,因为我处理特定于子类型的数据.

java casting

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

我可以将具有泛型类型的类用于不同类的集合吗?

我有以下通用类:

public class Foo<T> {
    private String name;
    private T value;
    ... // get/set methods
}
Run Code Online (Sandbox Code Playgroud)

在另一堂课中我想要:

public class Bar {
    private List<Foo> list;

    public <T> Foo<T> getFoo(String name) {
        // find elem which matches the name
        return listElement;
    }
}
Run Code Online (Sandbox Code Playgroud)

T我猜签名中所指的内容没有联系getFoo()。IntelliJ 抱怨未检查的分配。我不能这样做,List<Foo<T>>因为T在课堂上下文中不存在Bar

可以这样做吗,或者在这种情况下我是否滥用了泛型的整个概念?

java generics

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

调用所有可能的向量组合的函数

自从我继续我的一位同事的项目以来,过去一周我一直在使用Clojure.我们正在使用Clojure生成一些文件.我正在尝试重构一些代码,因为他必须快速完成并硬编码大部分值.所以我有:

(defn gen [a b] (...))
Run Code Online (Sandbox Code Playgroud)

我想用类似的东西包装它

(defn gen-vector [a-vec b-vec] (...))
Run Code Online (Sandbox Code Playgroud)

gen_vector 将成为我的"主要",这意味着我将通过编写类似的东西来触发执行

(gen-vector [1 2] [3 4])
Run Code Online (Sandbox Code Playgroud)

我希望得到所有的组合gen,比如执行:

(gen 1 3)
(gen 1 4)
(gen 2 3)
(gen 2 4)
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的是什么

(map #(gen %1 %2) countries fieldchar)
Run Code Online (Sandbox Code Playgroud)

但是,这并没有做到这一点,因为它只做1-3,2-4.有关如何实现这一点的任何想法?

问候,迪米

functional-programming clojure map

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

是否包含并且如果减慢PHP?

我正在编写一些代码用于评估,并尝试将我的页面保存在各种模块中(如页眉,页脚等),我将其包含在页面中以创建最终版本.我有一些形式根目录回到同一页面,如果设置了一些会话变量,我有一些ifs要捕获.这会减慢页面的速度吗,比方说,5-10秒加载一个非常简单的页面?

他们是否可以从部门的PHP解释器中取得一些成果,因为同时学生上传文件,测试等等?

谢谢

编辑1.嗯.我只是通过评论不同的东西来调试代码,我只是意识到缓慢的部分是由教授提供的PHP功能所以不是我的坏...感谢您的时间...

php performance

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