Java - 获取类中属性的值

标签 java

假设这段代码:

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 ();
    }
}

使用公共(public)属性,我可以使用以下方式访问属性的值:

Int a = new Int ();
int x = a.value;

我想问一下有没有办法做到这一点:

Int a = new Int (3);
Int b = new Int (11);

int x = a + b;

而不是:

...
int x = a.value + b.value;

编辑

对不起,我错了!我知道Java不支持运算符重载。我写了不好的例子。

Int a = new Int (12);
int x = a.value;

有没有办法可以这样写上面的代码?

Int a = new Int (12);
int x = a;

所以,我要问的是是否可以访问类的特定属性而省略属性名称。

最佳答案

除了 Java 不支持用户指定的运算符重载之外,也没有任何机制可以执行 auto-(un)boxing有你自己的类(class)。

自动(取消)装箱仅适用于 8 个标准包装类(BooleanByteShortCharacterIntegerLongFloatDouble)如 paragraph 5.1.7 中定义。和 5.1.8 Java 语言规范。

所以没有办法让这个工作:

// Your own class Int
class Int { ... }

Int x = new Int(12);
int y = x; // auto-unboxing, not possible with Int

关于Java - 获取类中属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152149/

相关文章:

java - com.microsoft.azure.documentdb.DocumentClientException 日期 header 不符合所需的格式

java - 传递单元素数组内联

java - 从地理位置 api 获取响应代码为 400

java - Tess4J 可以处理旋转文本吗?

java - 尝试使用Hadoop运行mapReduce jar文件

java - 让 IntelliJ 尊重来自 Java 项目的 Scala 依赖项中的多个 @throws 注释

java.lang.IllegalArgumentException : object is not an instance of declaring class 异常

java - 交换输入并将输出打印为列

java - 从其他类引用 MainActivity 中的静态上下文是否不好?

java - 无法检查来自 SQLite 的有效登录