我想创建一个可以以与布尔
值相同的方式使用的类型。具体来说,我希望测试结构正常工作:
if (mytype) {
System.out.println("true");
}
很明显,在第5.1.7节中,语言将其定义为一种特殊情况。测试应用程序显示了这一点:
public class TypeBoolTest {
public static void main(String args[]) {
Boolean bool = true;
if (bool) {
System.out.println("bool = true");
} else {
System.out.println("bool = false");
}
}
}
/**
Compiled from "TypeBoolTest.java"
public class TypeBoolTest {
public TypeBoolTest();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_1
1: invokestatic #2 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
4: astore_1
5: aload_1
6: invokevirtual #3 // Method java/lang/Boolean.booleanValue:()Z
9: ifeq 23
12: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream;
15: ldc #5 // String bool = true
17: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
20: goto 31
23: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream;
26: ldc #7 // String bool = false
28: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
31: return
}
**/
扩展<code>布尔</code>将不起作用,因为类是最终的。
所以我的问题是:是否可以定义一个自定义类型,以便 Java 能够识别它遵循布尔
装箱和取消装箱规则?
不,不可能定义你自己的类型来被Java自动装箱。
自动(取消)装箱只适用于一组特定的标准类型(包装类型:< code>Boolean、< code>Integer、< code>Long等)。)并且没有办法用用户定义的类型来扩展它。
Java语言规范5.1.7和5.1.8节中定义了可以自动装箱和取消装箱的类型列表。
问题内容: 为什么不像天真的预期那样起作用? (输出为) 问题答案: 为了与Python 2-3兼容,只需将其添加到示例中: 或将Foo的原始定义扩展为包括: 当然,您也可以反过来定义它们,方法名称在哪里,然后将其分配给,但是我认为该名称只是Python根据其与对象的等价性将对象解释为真或假的原始C- ishness的遗产。零。只需添加上面的语句,您的代码即可在Python 2.x上运行,并且在升
我有一个自定义dto类: 和一个使用Web Api(4.5. net框架)的控制器 客户端只有4.0.net框架,因此我将无法使用PostAsJsonAsync()方法。将对象从客户端传递到服务器的解决方案是什么? 我尝试了如下方法: 然而它给了我一个例外: 难道不能使用牛顿软件库吗?
在对XML文件应用转换时,我得到了这个错误(即,未定义有效的布尔值)。这里有一个奇怪的陷阱: *我的应用程序从一个文件位置读取500到800个XML文件(XML文件大小范围从几KB到10MB),然后对每个文件进行转换。最初一切都很顺利,但在一些执行之后,它会在错误下面抛出: productsfromloc_v3.xsl: forg0006第651行错误:在xsl:call-template nam
问题内容: 尝试按照Apple文档(和教程化的)创建Launch Helper时,我似乎遇到了麻烦,原因是将Objective- C代码移植到Swift中…在此方面,谁的编译器再也不过分了案件。 该错误似乎始终是: 我尝试过在多个位置进行转换,以防万一我只是在处理一个多余的,古老的原语(由Obj- C或Core Foundation引入)而无济于事。 为了以防万一,我尝试投射响应: 产生错误: …
我发现了这个语法: 这个有两个点的语法是什么:叫? 在哪里可以找到有关它的信息? 它是仅适用于布尔值还是以其他不同的方式实现?
Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。