3 回答
TA贡献1942条经验 获得超3个赞
您不能重载强制转换运算符。Java 不支持它,而且可能永远不会。
要将单个值转换为所需类的实例,我们使用静态工厂方法。
public static Person fromAge(int age) { return new Person(age); }
他们通常返回一个部分构造的对象。在上面的代码片段中,一个新构造的人只age
设置了:其他字段将具有它们的默认值。
相反,我们使用吸气剂。
public int getAge() { return age; }
但是,由于
toString
已经存在,添加其他数据类型也是有意义的。
toInt
当它应用于我时(作为Person
类的一个实例)没有任何意义。可能是我的身高、体重、年龄、今天去洗手间的次数等等。我不能用一个整数来代表我自己,大多数班级也不能。
另一方面,toString
可以很好地完成这项工作:我可以给你 (read return ) 我的爱好、我的生物识别信息,甚至我的照片的总结。或者我可以将它留给默认实现,它仍然可以令人满意地表示一个对象。
TA贡献1966条经验 获得超4个赞
您不会为此使用强制转换,只需在您的 Person 类中编写方法来获取这些值。
public int getAge(){ return age; }
TA贡献1802条经验 获得超5个赞
所以我只做过一次,我不确定我做的方法是否合适。
但我的方法是一个名为 的方法typeConverter
,我会给它一个object
as parameter
,然后你可以parameter
看看它是什么对象类型,然后用你的值创建一个新的 Person。
虽然这种方法可能会导致问题,但当您的班级有两个integer fields
. 但我认为你可以找到一个解决方案,通过给它另一个参数来定义,你想将它转换到哪个字段。
我真的很抱歉我的英语不好,但我希望你能明白原则。
添加回答
举报