Java中的自定义下标
在苹果的编程语言Swift中,您可以像在自己的类的数组中一样使用下标。 例如,Swift中的类可以如下所示:Java中的自定义下标,java,swift,Java,Swift,在苹果的编程语言Swift中,您可以像在自己的类的数组中一样使用下标。 例如,Swift中的类可以如下所示: class MyNumber { let value: Int init(value: Int) { self.value = value } subscript(i: Int) -> Int { return value * i } } var = new MyNumber(15) var.multiply
class MyNumber {
let value: Int
init(value: Int) {
self.value = value
}
subscript(i: Int) -> Int {
return value * i
}
}
var = new MyNumber(15)
var.multiply(3)
这个类只有一个getter下标,但是您也可以做一个setter下标。无论如何,在执行此操作时:
let number = MyNumber(value: 15)
println(number[3])
它产生输出45
在Java中也可以使用下标编写这样的类吗?当然,我可以简单地使用带有参数的方法,但我想知道这是否可行。
感谢您的回答:)简短回答:否。在Java中设置等于
Class()
的内容将创建该对象的新实例化。就这样做吧:
class MyNumber {
let value: Int
init(value: Int) {
self.value = value
}
subscript(i: Int) -> Int {
return value * i
}
}
var = new MyNumber(15)
var.multiply(3)
在您的MyNumber
类代码中,为了清晰起见,将下标
更改为乘法
。这同样有效
同样原则的速记版本是
System.out.println(new MyNumber(15).multiply(3));
不,不可能。Java中没有运算符重载。