小编FTh*_*son的帖子

获取使用 calc 等表达式的 CSS 变量的计算值

在 JavaScript 中,您可以使用 .css 获取 CSS 变量的值getPropertyValue(property)。此函数可用于检索:root块中声明的变量。

:root {
    --example-var: 50px;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果此变量表达式包含类似 的函数calc,则该getPropertyValue调用将表达式作为文本返回而不是计算它,即使使用getComputedStyle.

:root {
    --example-var: calc(100px - 5px);
}
Run Code Online (Sandbox Code Playgroud)

如何获取使用 CSS 函数的 CSS 变量的计算值calc

请参阅下面的示例:

:root {
    --example-var: 50px;
}
Run Code Online (Sandbox Code Playgroud)
:root {
    --example-var: calc(100px - 5px);
}
Run Code Online (Sandbox Code Playgroud)
let div = document.getElementById('example');
console.log(window.getComputedStyle(div).getPropertyValue('--example-var'))
Run Code Online (Sandbox Code Playgroud)

javascript css css-variables

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

为什么ArrayList.contains(Object.class)不能用于查找实例类型?

假设我有一个ArrayList,其中填充了不同类型的对象......

ArrayList<Fruit> shelf = new ArrayList<Fruit>();
Apple apple = new Apple();
Orange orange = new Orange();
Pear pear = new Pear();

shelf.add(apple);
shelf.add(orange);
shelf.add(pear);
Run Code Online (Sandbox Code Playgroud)

我想知道是否shelf包含一个Orange对象.我试过了

shelf.contains(Orange.class)
Run Code Online (Sandbox Code Playgroud)

但这并不是真的.我的理解是contains利用equals方法进行对象比较,所以我不确定为什么会这样.

我意识到我可以简单地遍历ArrayList并单独检查对象的类型,但我很好奇为什么contains不按照我期望的方式行事.

java arraylist

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

BufferedReader默认缓冲区大小?

根据文档,BufferedReader(Reader)使用默认缓冲区大小,而第二个构造函数BufferedReader(Reader, int)允许设置缓冲区大小.

public BufferedReader(Reader in)

创建使用默认大小的输入缓冲区的缓冲字符输入流.

但是,文档并未提及默认缓冲区大小.

BufferedReader的默认缓冲区大小是多少?

java buffer bufferedreader

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

是否有Java 7的组合/多捕获块的正式名称?

在讨论多捕捉/混合catch块在这里与术语之间的模糊"多catch块",意思是Java 7的特性:

try { .. } catch (ExceptionA | ExceptionB ex) { .. }
Run Code Online (Sandbox Code Playgroud)

和"多个捕获块",意思是字面上,多个捕获块:

} catch (ExceptionA exa) { ..
} catch (ExceptionB exb) { .. }
Run Code Online (Sandbox Code Playgroud)

我已经研究过,看看Java 7功能是否有一个特定的官方名称,可以用它来清楚地区分它与捕获多个异常的旧方式.但是,Oracle 资源似乎并没有在任何地方命名这个功能,而其他一些来源(如EclipseSO)称之为"多捕获"块.

是否有任何官方的,Oracle给出的此功能名称?

java naming multi-catch

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

在除法后获取数字中的所有小数位

我目前正在使用BigDecimal,它给了我更多的小数,但还不足以满足我的目的.我需要能够一直到10 ^ 6数字.这是我目前的代码

BigDecimal num = new BigDecimal(103993/33102.0);
    pw.println(num.toString());
Run Code Online (Sandbox Code Playgroud)

它输出3.14159265301190249175533608649857342243194580078125

其中数字实际上有更多的小数:http://www.wolframalpha.com/input/?i = 103993%2F33102

java formatting bigdecimal

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

何时以及为什么"终于"有用?

PHP 5.5已经实现finallytry-catch.我的疑问是:到底哪个try-catch-finally可能比我在下面写的更有帮助try-catch

例子,区别:

try { something(); }
catch(Exception $e) { other(); }
finally { another(); }
Run Code Online (Sandbox Code Playgroud)

而不仅仅是:

try { something(); }
catch(Exception $e) { other(); }
another();
Run Code Online (Sandbox Code Playgroud)

可以给我发一些这种情况常见的例子吗?

备注:

  1. 我只谈论try-catch-finally而不是谈论try-finally;
  2. 有一些"功能"很酷,就像你取消当前的异常并最终抛出一个新的其他异常(我没试过,我在这里阅读).我不知道是否有可能没有finally;
  3. 会不是更有用的东西notcatch?所以我可以运行代码,如果try没有例外.呵呵

php exception-handling try-catch-finally

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

JScrollPane - 平滑滚动

我有一个JScrollPane具有适度高的块增量(125).我想对其应用平滑/慢速滚动,以便在滚动时不跳转(或跳过).我怎样才能做到这一点?

我在考虑像Windows 8一样滚动.

任何帮助将不胜感激!

java swing scroll jscrollpane

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

使用前瞻和查看正则表达式后面的错误

我使用以下正则表达式时遇到问题.它在regexr和rubular中工作正常,但在node.js上运行它时会出错.我使用正则表达式相当新,我不确定我做错了什么.如果我敲掉它就行了,(?<= )所以我认为这是问题所在.

我正在尝试将'is'与使用的前导和尾随空格匹配 /(?<= )is(?= )|==/g

测试词示例:http:
//regexr.com?33781

节点错误输出

 temp = temp.replace(/(?<= )is(?= )|==/g, '===');
^
SyntaxError: Invalid regular expression: /(?<= )is(?= )|==/: Invalid group
at new RegExp (unknown source)
Run Code Online (Sandbox Code Playgroud)

javascript regex node.js

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

Sudoku Solver的代码说明

我对以下代码片段有疑问:它是一个数独求解器,通过填充空单元格来解决数独谜题.我无法真正理解求解器方法背后的逻辑.为什么在尝试k = 1-9后返回false,并在遍历所有单元格后返回true.我的想法是我们递归进入solver()方法,一旦数独完成,它将返回true作为调用顺序,最后第一个被调用的solver()将返回true.我想我必须省略上面两个"返回"发生的情况.有人可以向我解释为什么这些"回归"存在?

public class Solution {

public static void main(String[] args) {
    Solution s = new Solution();
    char[][] board = {{'.', '2', '6', '5', '.', '.', '.', '9', '.'},
                      {'5', '.', '.', '.', '7', '9', '.', '.', '4'},
                      {'3', '.', '.', '.', '1', '.', '.', '.', '.'},
                      {'6', '.', '.', '.', '.', '.', '8', '.', '7'},
                      {'.', '7', '5', '.', '2', '.', '.', '1', '.'},
                      {'.', '1', '.', '.', '.', '.', '4', '.', '.'},
                      {'.', '.', '.', '3', '.', …
Run Code Online (Sandbox Code Playgroud)

java sudoku

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

在Java中检索当前的大写锁定状态

使用以下代码:

Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)
Run Code Online (Sandbox Code Playgroud)

不幸的是,只返回false.

根据文档,这应该工作:http://docs.oracle.com/javase/8/docs/api/java/awt/Toolkit.html#getLockingKeyState-int-

可运行的例子:

import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class Foo {

    public static void main(String[] args) {

        ExecutorService executorService = Executors.newFixedThreadPool(1);

        executorService.execute(new Runnable() {
            public void run() {
                while(true) {
                    try{ Thread.sleep(250); }catch(Exception ignored) { }
                    System.out.println("Capslock state: " + Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
                }
            }
        });

        executorService.shutdown();
    }

}
Run Code Online (Sandbox Code Playgroud)

应该补充说我在Windows上使用Java SE 1.8并且我的Caplock键工作正常

控制台输出截图:

在此输入图像描述

java

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