我想将空结果集的聚合为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))
吗?
我已经阅读了一些初学者对smalltalk的介绍,并且有一个主题缺失.这是错误处理.怎么做?对象会抛出某种异常吗?向某人发送一些错误消息?
我一直在使用smalltalk一段时间,我喜欢语言和概念.我讨厌的是系统浏览器.该工具甚至不像现代IDE.如何在没有标签,轮廓和方便的快捷方式的情况下进行编码?我经常发现自己实现了一个选择器,并注意到在一个单独的(私有)选择器中隔离一段代码会很好,只是为了可读性抖动,但我没有.因为它需要5次鼠标点击,我必须离开我正在工作的选择器,并导航回它.哦等等,我不能!因为它有语法错误,因为我还没有完成它!杀了我.我没有24英寸显示器来打开3个浏览器.
抱歉有点咆哮.我的问题是,是否有一个真正的IDE(Eclipse,Net.Beans,VS)用于smalltalk?也许对于一些商业版的smalltalk?
为什么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) 在某些情况下,我需要将JFrame放在鼠标光标所在的位置.我是否真的需要鼠标监听器来跟踪鼠标移动事件,或者我能以某种方式读取当前鼠标位置?
为什么有时会HttpServletRequest.getRemoteAddr()
回来?对于大约2个相同的请求中的大约2个是没有明显原因的返回.null
null
我想要动态缓存名称,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)
我偶然发现了虚拟线程和 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代码的执行顺序:
int i = getA() + getB();
Run Code Online (Sandbox Code Playgroud)
是getA()
之前一直执行的getB()
,因为任何一般人所期望的?
java ×6
smalltalk ×2
swing ×2
css-position ×1
deadlock ×1
ide ×1
lf ×1
mouse ×1
postgresql ×1
servlets ×1
spring ×1
spring-cache ×1
spring-data ×1
sql ×1
substance ×1