Java 如何区分一个类的两个实例
我有两个类Java 如何区分一个类的两个实例,java,constructor,Java,Constructor,我有两个类Transactions的构造函数,它们在最后一个参数中有所不同,第一个构造函数接受标签对象,第二个构造函数接受框对象 public class Transactions { private String date; private String kind; private int employee; private Label label; private Box box; public Transactions(String date, S
Transactions
的构造函数,它们在最后一个参数中有所不同,第一个构造函数接受标签
对象,第二个构造函数接受框
对象
public class Transactions {
private String date;
private String kind;
private int employee;
private Label label;
private Box box;
public Transactions(String date, String kind, int employee, Box box) {
this.date = date;
this.kind = kind;
this.employee = employee;
this.box = box;
}
public Transactions(String date, String kind, int employee, Label label) {
this.date = date;
this.kind = kind;
this.employee = employee;
this.label = label;
}
...
}
假设我创建了一个类Transactions
的对象,它是tr
。
我怎样才能分辨它是哪一个?是带有
标签的对象还是带有框的对象?调用了哪个构造函数?如果需要区分,两个对象可能不属于同一类
在您的示例中,两个类都可以共享一个公共超类,或者它们应该有一个特殊类型的字段,保存公共信息。如果需要区分这一点,两个对象可能不应该属于同一类
在您的示例中,两个类都可以共享一个公共超类,或者它们应该有一个特殊类型的字段,保存公共信息。您可以通过检查this.label==null
来轻松检查刚才调用了哪个超类
您还可以添加一个标志,指出调用了哪个构造函数
无论如何。如果您面临这样的问题,您肯定应该重新考虑代码。这些构造函数可能不应该构造同一类的对象。可能是一些继承,可能是一些组合…您可以通过检查this.label==null
来轻松检查刚才调用了哪一个
您还可以添加一个标志,指出调用了哪个构造函数
无论如何。如果您面临这样的问题,您肯定应该重新考虑代码。这些构造函数可能不应该构造同一类的对象。可能是一些继承,可能是一些组合…调用了哪个构造函数并不重要,但您可以检查
box
或label
是否为空。这是否被认为是好的设计是另一回事。调用了哪个构造函数并不重要,但您可以检查box
或label
是否为空。这是否被认为是好的设计是另一回事。