我有一个有几个成员的 Java 类。我想为它编写一个自定义演员表。我想知道怎么可能这样做?
我们假设该类如下:
class Person {
private int age;
private float weight;
// getters and setters and etc
}
Run Code Online (Sandbox Code Playgroud)
我希望强制转换返回对象的int成员,并希望强制转换返回对象的成员。agefloatweight
例如:
class Person {
private int age;
private float weight;
// getters and setters and etc
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以做相反的事情。特别是,转换intto将返回其被分配Person的实例,对于 也类似。Personagefloat
我知道这个问题可能没有答案。但由于我在搜索中没有找到任何有用的结果,所以我决定询问一下。
PS 我知道对于 a String,该toString方法将处理情况 1。
您不能重载强制转换运算符。Java 不支持它,而且可能永远不会支持它。
要将单个值转换为所需类的实例,我们使用静态工厂方法。
public static Person fromAge(int age) {
return new Person(age);
}
Run Code Online (Sandbox Code Playgroud)
它们通常返回部分构造的对象。在上面的代码片段中,新构建的人员仅age设置:其他字段将具有默认值。
为了做相反的事情,我们使用吸气剂。
public int getAge() {
return age;
}
Run Code Online (Sandbox Code Playgroud)
但是,由于
toString已经存在,因此添加其他数据类型也是有意义的。
toInt当它应用于我时(作为类的实例Person)没有任何意义。可能是我的身高,我的体重,我的年龄,我今天去洗手间的次数,等等。我不能用一个整数来代表我自己,大多数班级也不能。
另一方面,toString可以很好地完成这项工作:我可以给你(阅读返回)我的爱好、我的生物特征信息、甚至我的照片的摘要。或者我可以将其保留为默认实现,它仍然可以令人满意地表示一个对象。
| 归档时间: |
|
| 查看次数: |
4776 次 |
| 最近记录: |