小编Bar*_*lom的帖子

前缀JAXB生成的类

我有这个Maven"任务"使用JAXB从XSD文件生成Java类.

        <!-- XML to Java classes -->
        <plugin>
            <groupId>com.sun.tools.xjc.maven2</groupId>
            <artifactId>maven-jaxb-plugin</artifactId>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <generatePackage>nl.compay.service</generatePackage>
                <schemaDirectory>src/main/webapp/compay</schemaDirectory>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

对于XSD类型"User",它会生成一个名为"User"(duh)的类.但是,我还有一个名为"User"的JPA实体类(虽然在不同的包中).我可以更改上面的XML配置,让JAXB为生成的类添加"XML"之类的前缀吗?

jaxb class-names xjc

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

检查PHP函数是返回null还是空

我有这个代码

 $return = $ep->$method($params);
 if ($return === null) {
  throw new Exception('Endpoint has no return value');
 }
 return $return;
Run Code Online (Sandbox Code Playgroud)

有没有办法区分返回null的方法和不返回任何内容的方法?

php return-value

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

同步值,而不是对象

我想在Java中做这样的事情

  public void giveMoney(String userId, int money) {
    synchronized (userId) {

        Profile p = fetchProfileFromDB(userId);
        p.setMoney(p.getMoney() + userId);
        saveProfileToDB(p);

    }
   }
Run Code Online (Sandbox Code Playgroud)

但是,当然,对字符串进行同步是不正确的.做这样的事情的正确方法是什么?

java synchronized thread-safety

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

将凹多边形分解为凸多边形

我正在使用一个只支持凸多边形形状的游戏物理库(Box2D).但是,我希望关卡生成器能够指定凹多边形而不必担心.

那么,我怎样才能自动将凹多边形分解为凸多边形(甚至是所有三角形).速度会很酷,但实施的简便性更为重要.分手只会在游戏初始化时完成.

(我的语言是Flash/ActionScript 3,但这不重要)

physics polygon actionscript-3 box2d

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

在常春藤中找到隐藏的依赖项

我正在使用Apache Ivy + IvyDE获取项目的依赖项,它们是:

    <dependency org="com.google.guava" name="guava" rev="r08" />

    <!-- logging -->
    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" />
    <dependency org="ch.qos.logback" name="logback-classic" rev="0.9.27" />

    <!-- database -->
    <dependency org="org.hibernate" name="hibernate-entitymanager" rev="3.6.2.Final" />
    <dependency org="org.hibernate" name="hibernate-validator" rev="4.1.0.Final" />
    <dependency org="org.hibernate" name="hibernate-c3p0" rev="3.6.2.Final" />
    <dependency org="mysql" name="mysql-connector-java" rev="5.1.14" />
Run Code Online (Sandbox Code Playgroud)

源代码是Maven和JBoss(Hibernate)存储库.

正如您所看到的,我正在使用logback + SLF4J进行日志记录,但出于某种原因,Ivy也会下载log4j和slf4j-log4j,这会在我的应用程序中引起一些小问题.

有没有办法看到为什么会发生这种情况,看看上面哪个依赖项依赖于log4j?我可以从Ivy/IvyDE生成依赖图/树吗?

那么有没有办法防止这种情况发生?

java log4j ivy dependency-management

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

检测AutoCloseable中的异常close()

我想构建一个自定义AutoCloseable类,所以我可以转为:

try {
    begin();
    doThings();
    commit();
} finally {
    if (transactionIsActive()) rollback();
}
Run Code Online (Sandbox Code Playgroud)

变得更容易

try (Transaction t = begin()) { // too bad I have to store it in t though I don't use it
    doThings();
}
Run Code Online (Sandbox Code Playgroud)

Transaction将在AutoCloseable这里,并在close()其中将适当地提交或回滚事务.

但为了实现这一目标,我需要检测Transaction.close()try块内是否发生异常或者是否正常完成.这有可能吗?

如果它需要从新的异常中解析堆栈跟踪,那就没问题.更简单的编程将值得带来的微小性能打击.

java transactions exception-handling java-7

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

使用GSON反序列化为ImmutableMap

我想用GSON来推导:

"starterItems": {
    "Appeltaart": 3,
    "Soap_50": 3
}
Run Code Online (Sandbox Code Playgroud)

...进入番石榴ImmutableMap:

private ImmutableMap<String,Integer> starterItems;
Run Code Online (Sandbox Code Playgroud)

我以为我只是使用常规的GSON映射解析,然后制作结果的不可变副本,如下所示:

    gb.registerTypeAdapter(ImmutableMap.class, new JsonDeserializer<ImmutableMap>() {
        @SuppressWarnings("unchecked")
        @Override public ImmutableMap deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
            return ImmutableMap.copyOf((Map) context.deserialize(json, Map.class));
        }
    });
Run Code Online (Sandbox Code Playgroud)

但正如预期的那样,这太简单了(没有类型信息).我收到错误:

com.google.gson.JsonParseException: The JsonDeserializer MapTypeAdapter failed to deserialized json object {"Appeltaart":3,"Soap_50":3} given the type interface java.util.Map
Run Code Online (Sandbox Code Playgroud)

我能做我想做的事吗?

java serialization gson

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

如何在Chrome中找到未销毁但GC的Javascript对象?

我有一个带有一些对象(类型BaseTexture)的应用程序,destroy当它们不再使用时应该调用一个显式函数.否则他们可能会泄漏一些记忆.这应该在它们被垃圾收集之前完成(显然只能在那时完成),但并不总是这样.

在Java中,我会检测并使用它来记录它finalize,但Javascript中不存在这样的事情.

我可以在Chrome(或其他浏览器)中检测到这一点吗?我不关心它是否有错误,需要标志,只能记录一条简单的消息等,只要它在开发过程中有效.BaseTexture已经销毁的事实可以从其source财产中获取.

javascript garbage-collection google-chrome finalizer

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

"URL友好标题"的好名字?

我正在创建一个包含文章的动态网站.每篇文章都有一个标题,如"一个人如何吃一只狗并与它一起生活?",而且我现在称之为"URL友好标题",例如"吃狗".

我正在为"URL友好标题"寻找一个更好的词,因为它非常满口.Wordpress称他们为"Post Slug"但我不喜欢这个.这些东西有什么好名字?

seo friendly-url slug

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

PHP删除HTTP标头

我认为Apache会将这些HTTP标头添加到PHP脚本生成的所有响应中:

Expires:   Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control:  no-store, no-cache, must-revalidate, post-check=0, pre-check=0

这适用于实际的动态页面,但我有一些页面,虽然由PHP生成,但大部分是静态的,我希望浏览器缓存它们.

PHP中是否有一种方法可以从响应中删除这些标题,从而激活浏览器的默认缓存规则,如果没有,是否有任何值可以将它们设置为等同于它们不存在?

我宁愿不设置自己的值,因为我希望浏览器使用与Apache本身提供的静态资源相同的缓存规则(不使用mod_cache).

php http-headers

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