Xan*_*dor 5 java custom-object
我有一个自定义对象,其具有int类型的单个值,我想要进行处理以将此值保持在设置范围内.我的问题是:给定以下类,我可以用myObject = 0设置它的值;
public class foo{
private int bar;
public foo(){
}
}
Run Code Online (Sandbox Code Playgroud)
而不是创建方法public void setBar()
如果你的意思是:
foo x = new foo();
x = 10; // This is meant to set x.bar
Run Code Online (Sandbox Code Playgroud)
那么不,你不能用Java做到这一点.好的,如果你问我......在可读性方面会很糟糕.
您也无法更改它以允许:
foo x = 10;
Run Code Online (Sandbox Code Playgroud)
相当于:
foo x = new foo();
x.bar = 10; // Or x.setBar(10);
Run Code Online (Sandbox Code Playgroud)
不,你不能那样做。Java不支持运算符重载。虽然+运算符被重载用于执行字符串连接,但这是唯一的例外。按照您想要的方式使用运算符的另一个示例=是包装类,您可以直接将原始类型值分配给其相应的包装类型,这会导致原始值自动装箱为包装类型。
Integer val = 10; // 10 is auto-boxed to Integer reference
Run Code Online (Sandbox Code Playgroud)
但它仅限于此目的。您不能对自己的用户定义类型执行此操作。
创建方法是您唯一的选择。