我正在将2个Java类的信息发送到另一个Java类但是我想制作一个if / else情况,如果它来自1个类,则输入if,如果它来自另一个,则输入else。
我说实话,我当然不知道怎么做,所以我甚至无法启动它......
我在这两种情况下发送的是:
save.setCode(rtx);
答案 0 :(得分:3)
使用instanceOf
运算符。
if (myobject instanceof Class1) {
// then do your logic here
}
if (myobject instanceof Class2) {
// then do your logic here
}
instanceof运算符将对象与指定类型进行比较。您可以使用它来测试对象是否是类的实例,子类的实例或实现特定接口的类的实例。
答案 1 :(得分:1)
如果要发送对象实例,则可以使用instanceof
运算符来检查该对象是否属于特定类 -
if (myobject instanceof MyClass1) {
// then do your thing
}
else if (myobject instanceof MyClass2) {
// then do your thing
}
但强烈建议不要这样做。使用多态来实现这种行为。
答案 2 :(得分:0)
使用instanceof
toString()
更快
答案 3 :(得分:0)
如果我做对了,你要做的就是根据你的班级来电者做出决定,而不是根据所传递的信息做出决定。
为此,你需要:
Thread.currentThread().getStackTrace()
)。答案 4 :(得分:0)
你必须试试这个。
说明:
在将rtx
发送到接收者类时,您还必须传递一个代表您的发送类的键int。我只使用这种方法。
public class Sender1
{
Receiver save;Object rtx;
public void somefunc(){
final int Me=100;
save.setCode(rtx, Me);
}
}
public class Sender2
{
Receiver save;Object rtx;
public void somefunc(){
final int Me=200;
save.setCode(rtx, Me);
}
}
public class Receiver{
public void setCode(Object arg, int sender){
final int Sender1=100, Sender2=200;
if(sender==Sender1){
...
}
else if(sender==Sender2){
...
}
else ...
}
}