小编mil*_*lan的帖子

空结果集的聚合

我想将空结果集的聚合为0.我尝试了以下内容:

SELECT SUM(COALESCE(capacity, 0))
  FROM objects
 WHERE null IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)

结果:

sum 
-----

(1 row)
Run Code Online (Sandbox Code Playgroud)

子问题:上面的工作不会在Oracle中使用SUM(NVL(capacity, 0))吗?

sql postgresql aggregate-functions

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

smalltalk错误处理

我已经阅读了一些初学者对smalltalk的介绍,并且有一个主题缺失.这是错误处理.怎么做?对象会抛出某种异常吗?向某人发送一些错误消息?

error-handling smalltalk

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

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

squeak/pharo的替代IDE

我一直在使用smalltalk一段时间,我喜欢语言和概念.我讨厌的是系统浏览器.该工具甚至不像现代IDE.如何在没有标签,轮廓和方便的快捷方式的情况下进行编码?我经常发现自己实现了一个选择器,并注意到在一个单独的(私有)选择器中隔离一段代码会很好,只是为了可读性抖动,但我没有.因为它需要5次鼠标点击,我必须离开我正在工作的选择器,并导航回它.哦等等,我不能!因为它有语法错误,因为我还没有完成它!杀了我.我没有24英寸显示器来打开3个浏览器.

抱歉有点咆哮.我的问题是,是否有一个真正的IDE(Eclipse,Net.Beans,VS)用于smalltalk?也许对于一些商业版的smalltalk?

ide smalltalk

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

为什么java允许NPE

为什么javac不在这段代码上发出错误?

private static int compute(int v) {
    return v == 0 ? null : v;
}
Run Code Online (Sandbox Code Playgroud)

肯定compute(0)会抛出NullPointerException.我希望java编译器通过做一些基本的静态代码分析来防止这种情况,就像它会阻止它一样

private static int compute(int v) {
    if (v == 0)
        return null;
    else
        return v;
}
Run Code Online (Sandbox Code Playgroud)

java

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

在没有听众的情况下获取鼠标位置

在某些情况下,我需要将JFrame放在鼠标光标所在的位置.我是否真的需要鼠标监听器来跟踪鼠标移动事件,或者我能以某种方式读取当前鼠标位置?

java mouse swing css-position

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

HttpServletRequest#getRemoteAddr()返回NULL

为什么有时HttpServletRequest.getRemoteAddr()回来?对于大约2个相同的请求中的大约2个是没有明显原因的返回.null null

java servlets

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

带有自定义cacheResolver的spring缓存

我想要动态缓存名称,spring 4.1 允许这样做

从 Spring 4.1 开始,缓存注释的 value 属性不再是强制性的,因为无论注释的内容如何,​​CacheResolver 都可以提供此特定信息。

请注意我如何偏执地设置cacheResolver所有可能的级别:

@Cacheable(cacheResolver = "defaultCacheResolver")
@CacheConfig(cacheResolver = "defaultCacheResolver")
public interface GatewayRepository extends CrudRepository<Gateway, Integer> {
    @Cacheable(cacheResolver = "defaultCacheResolver")
    Gateway findByBulkId(int bulkId);
}
Run Code Online (Sandbox Code Playgroud)

Spring 4.1.5 仍然无法验证配置并出现错误:Caused by: java.lang.IllegalStateException: No cache names could be detected on 'public abstract skunkworks.data.Gateway skunkworks.repos.GatewayRepository.findByBulkId(int)'. Make sure to set the value parameter on the annotation or declare a @CacheConfig at the class-level with the default cache name(s) to use. at org.springframework.cache.annotation.SpringCacheAnnotationParser.validateCacheOperation(SpringCacheAnnotationParser.java:240)

spring spring-data spring-cache

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

Java虚拟线程和ConcurrentHashMap

我偶然发现了虚拟线程和 ConcurrentHashMap 的问题。

正如下面的代码所示,如​​果您在 中输入锁定computeIfAbsent,VT 可能永远不会唤醒。这实际上取决于 VT 在载体线程上的调度方式,但我可以轻松地重现这一点。

我知道 ConcurrentHashMap 使用synchronized,而 VT 不能很好地使用synchronized,但没有地方说要避免ConcurrentHashMap,因为那会非常令人失望。

class Scratch {
    public static void main(String[] args) throws InterruptedException {
        var lock = new ReentrantLock();
        var map = new ConcurrentHashMap<Integer, String>();

        var callables = new ArrayList<Callable<Void>>();
        for (int i = 0; i < 32 /* more than threads in FJ pool */; i++) {
            callables.add(() -> {
                System.out.println("Spawned thread " + Thread.currentThread().threadId());
                map.computeIfAbsent(1, k -> {
                    System.out.println("on lock() …
Run Code Online (Sandbox Code Playgroud)

java deadlock virtual-threads

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

java中的序列点

是否有保证的以下java代码的执行顺序:

int i = getA() + getB();
Run Code Online (Sandbox Code Playgroud)

getA()之前一直执行的getB(),因为任何一般人所期望的?

java sequence-points

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