小编ars*_*tov的帖子

代码对象o = true?new Integer(0):new Long(1)返回值为0的Long.为什么?

请考虑我们的代码如下:

Object obj = true ? new Integer(0) : new Long(1);
System.out.println(obj.getClass() + "\nvalue = " + obj);
Run Code Online (Sandbox Code Playgroud)

其结果是:

class java.lang.Long
value = 0
Run Code Online (Sandbox Code Playgroud)

代替:

class java.lang.Integer
value = 0
Run Code Online (Sandbox Code Playgroud)

有人可以澄清为什么我们在Java中有这样的功能吗?这对我来说很奇怪.你有什么例子可以用吗?

更新:这是一段字节码,我们可以看到,那里有什么

NEW java/lang/Integer
DUP
LDC "0"
INVOKESPECIAL java/lang/Integer.<init> (Ljava/lang/String;)V
INVOKEVIRTUAL java/lang/Integer.intValue ()I
I2L
INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long;
ASTORE 1
Run Code Online (Sandbox Code Playgroud)

java

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

运行时泛型类型确定

为什么会这样.如果我将匿名泛型类传递给类型确定方法 - 一切都很好.但是如果我在这个方法中传递对象 - 控制台输出是E.

public static void main(String[] args) {

    printType(new ArrayList<Integer>() {});
    printType(new ArrayList<Integer>());

}

public static void printType(final List<?> list) {
    System.out.println(((ParameterizedType) list.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
}
Run Code Online (Sandbox Code Playgroud)

安慰:

class java.lang.Integer

E
Run Code Online (Sandbox Code Playgroud)

请向我解释.

java generics type-parameter

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

hybris“关键字”功能是什么?

在此输入图像描述在 HMC 中的 Catalog 文件夹下,有 keywords 节点(附图)。它的作用是什么?在 hybris wiki 上没有找到任何信息。请不要与“关键字重定向”功能混合使用。

sap-commerce-cloud

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