假设这段代码:
customer.js
使用public属性,我可以使用:
访问属性的值public class Int {
public int value;
public Int () {
this.value = 0;
}
public Int (int value) {
this.value = value;
}
@Override
public String toString () {
return Integer.valueOf (this.value).toString ();
}
}
我想问一下是否有办法解决这个问题:
Int a = new Int ();
int x = a.value;
而不是:
Int a = new Int (3);
Int b = new Int (11);
int x = a + b;
修改
抱歉,mea culpa!我知道Java不支持运算符重载。我写了不好的例子。
...
int x = a.value + b.value;
有一种方法可以用这种方式编写上面的代码吗?
Int a = new Int (12);
int x = a.value;
所以,我要问的是,是否可以访问省略属性名称的类的特定属性。
答案 0 :(得分:1)
除了Java不支持用户指定的运算符重载之外,还没有机制可以使用自己的类来执行auto-(un)boxing。
自动(非)装箱仅适用于8个标准包装类(Boolean
,Byte
,Short
,Character
,Integer
,{{ 1}},Long
和Float
),如Java语言规范的paragraph 5.1.7和5.1.8中所定义。
所以没有办法让这项工作:
Double