当前位置:  开发笔记 > 编程语言 > 正文

在强制转换表达式中使用AdditionalBound

如何解决《在强制转换表达式中使用AdditionalBound》经验,为你挑选了0个好方法。

可以AdditionalBound在JLS8中描述的演员表达式用于除了 lambda表达式或方法引用之外的任何东西吗?

据说,它可能是:

( ReferenceType {AdditionalBound} ) UnaryExpressionNotPlusMinus 

然后:

由强制转换表达式引入的强制转换上下文(第5.5节)的目标类型是(...)由出现在强制转换运算符中的ReferenceType和AdditionalBound术语表示的交集类型.

但我找不到 -lambda 或非 -method-reference示例的可行示例,例如:

 X x = (I1&I2) some_UnaryExpressionNotPlusMinus

UPD:

特别是,它允许类似的东西

X x = (I1&I2) ~ UnaryExpression,~一元运算符在哪里.

我不知道应该是什么X,I1,I2而且UnaryExpression在这种情况下.

UPD-2:感谢@Jimmy T.,他展示了可行的例子

Object x = (Number&Serializable)~0;.

但是很高兴看到非冗余的例子,这种铸造有意义.

UPD-3:根据以上所有这些表达式都已编译,但所有这些表达式都没有任何意义:

    Object l1 = (Collection & Iterable) new ArrayList<>();
    List l2 = (ByteList & Iterable) new ArrayList<>();
    Collection l3 = (List & Iterable) new ArrayList<>();

无法想象这种铸造是否明智的情况.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有