小编OLE*_*SHA的帖子

Java lambda表达式 - 显式目标类型

考虑功能接口AB extends A.是否可以创建一个实例,不仅需要实现A,还需要B在只A需要时使用lambda表达式?

例:

interface A {
    void foo();
}

interface B extends A {}

void bar(A arg) {
    System.out.println(arg instanceof B);
}

/* somewhere in a block */
    bar( () -> {} ); // Prints "false"
Run Code Online (Sandbox Code Playgroud)

我怎么打电话bar(A)打印true

我会发现这在事件侦听器中很有用,其中子接口可以指定有关侦听器的其他数据,例如,如果Listener还实现ConcurrentListener,则同时调用它.

java syntax lambda

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

返回后使用try-finally执行语句

请考虑以下代码:

Foo result = array[index];
index = (index + 1) % array.length;
return result;
Run Code Online (Sandbox Code Playgroud)

为了执行一些最终操作,需要额外的变量.将其写为:

try {
    return array[index];
} finally {
    index = (index + 1) % array.length;
}
Run Code Online (Sandbox Code Playgroud)

还是会对绩效产生影响?一般来说,它被认为是一种好/坏的做法,如果是这样,为什么呢?

(在示例中,假设它index是一个有效的索引,array并且代码不会抛出ArrayIndexOutOfBoundsException)

编辑:问题不是关于需要使用try-finally,而是关于我选择做的任何性能上的获得或损失.没有它,就会创建一个变量.有了它,返回的值可能以更有效的方式存储在其他地方.

java performance try-finally

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

如何从 Java 中的二进制表示形式获取浮点数?

我想创建浮点数的二进制表示形式,并能够在需要时解析该数字。我所说的“二进制表示”并不是指“ 0.00101”,而是类似“ 101000101”的东西,也就是说,由0s 和1s 组成的序列,没有小数点分隔符。我需要一种方法来在Stringfor a中创建此类表示double并解析 adouble的 a String。请不要提及 XY 问题,因为我确实需要此方法(类似于“无符号二进制值”)。

先感谢您。

将双精度转换为二进制表示形式?double似乎解决了解析到的问题String,但我仍然需要帮助做相反的事情:从二进制到double.

java floating-point binary

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

为什么 Vulkan 禁止非统一块的统一?

根据Vulkan 规范

以下功能已被删除:

  • 默认制服(不在统一块内的统一变量)

例如,GLSL 中禁止以下行为:

layout(set = 0, binding = 0) uniform mat4 projectionMatrix;
Run Code Online (Sandbox Code Playgroud)

相反,似乎鼓励程序员创建一个统一的块:

layout(set = 0, binding = 0) uniform Projection {
    mat4 matrix;
} projection;
Run Code Online (Sandbox Code Playgroud)

使用单值制服有时对于较小的应用程序很有用。删除该功能的理由是什么?

glsl vulkan

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