Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查类型为“的参数的特定对象类型”;“对象”;_Java_Oop_Object - Fatal编程技术网

Java 检查类型为“的参数的特定对象类型”;“对象”;

Java 检查类型为“的参数的特定对象类型”;“对象”;,java,oop,object,Java,Oop,Object,我有一个用于元组对象的元组类,其中一个方法是检查一个对象是否等于一个元组对象。我不会指定是什么决定了两个元组之间的相等,但我所困惑的是如何处理equals()方法的参数参数是“Object”这一事实。显然,如果对象甚至不是一个元组,我将返回false——这样做的最佳方式是什么 我知道有instanceof和getClass等方法,但这样做是否正确/推荐 谢谢 您需要将对象o强制转换为Tuple,以比较Tuple的属性。在强制转换之前,您应该使用instanceOf操作符比较输入对象是否属于Tup

我有一个用于元组对象的元组类,其中一个方法是检查一个对象是否等于一个元组对象。我不会指定是什么决定了两个元组之间的相等,但我所困惑的是如何处理equals()方法的参数参数是“Object”这一事实。显然,如果对象甚至不是一个元组,我将返回false——这样做的最佳方式是什么

我知道有instanceof和getClass等方法,但这样做是否正确/推荐


谢谢

您需要将对象
o
强制转换为
Tuple
,以比较
Tuple
的属性。在强制转换之前,您应该使用
instanceOf
操作符比较输入对象是否属于
Tuple
类型。

您需要将对象
o
强制转换为
Tuple
,以比较
Tuple
的属性。在强制转换之前,您应该使用
instanceOf
操作符比较输入对象是否为
Tuple
类型。

您必须查看您的业务需求,但在大多数情况下,如果类型不同,则会被视为不相等——您甚至无法比较其他对象,除非它是相同的类型/子类型。因此:

public class Tuple {
    // ...
    // ...
    // ...

    // Compare if Tuple is equal to specified object o
    public boolean equals(Object o) {
        // code goes here
    }

    // ...
}
if(!(o instanceof Tuple))
    return false;
Tuple other = (Tuple) o;
...

您必须检查您的业务需求,但是在大多数情况下,如果类型不同,那么它将被认为是不平等的——您甚至不能比较其他对象,除非它是相同的类型/子类型。因此:

if(!(o instanceof Tuple))
    return false;
Tuple other = (Tuple) o;
...

这是一个很好的例子,但在施放之前,您需要确保它是一个元组,否则您将得到一个ClassCastException@Jems同意应该有多个检查,例如输入是否为null,是否为tuple的instanceOf。但我直接回答了这个问题。我将添加更多的细节。这,但你需要确保它是一个元组之前铸造,否则你会得到一个ClassCastException@Jems同意应该有多个检查,例如输入是否为null,是否为tuple的instanceOf。但我直接回答了这个问题。我将添加更多详细信息。您不需要检查null,
instanceof
会为您执行此操作+不管怎样,你不需要检查null,
instanceof
会帮你检查+1无论如何。