假设我有两门课:
public Class1 {
/* class body*/
}
public Class2 extends Class1 {
public Class2 (int var1, int var2) {
super(var11, var2);
}
}
现在我需要确定我拥有哪个类对象。在这种情况下,如何确定我是否有对象?
Object var1 = new Class1(1,2);
Object var2 = new Class2(1,2);
var2 instanceof Class2; /*true*/
var2 instanceof Class1 /*true*/
在这两种情况下,instanceof将返回true。
测试它是否不是子类的实例:
object instanceof Superclass
&& !(object instanceof Subclass)
或者,使用if/ett链:
if (object instanceof Subclass) {
// Do something.
} else if (object instanceof Superclass) {
// Do something else.
}
选择取决于您实际使用它的目的。
您可以使用等于:
if (this.getClass().equals(Class1.class) {
// Do something...
}
在java中,我们可以缩小返回类型和throws异常类型(甚至删除throws子句): 但是,参数类型呢(如果A采用< code>T,那么为什么B不采用< code >?超级T)如: 让我们考虑一下我认为完全符合逻辑的这段代码: 所以我要说的是,在使用的代码上下文中仍然有效。
如果我有以下代码 首先,这甚至是可能的,因为它编译得很好。但是我不能使用中的方法执行操作: makeCan是否不同时返回Can和PromotionalCan?如果是这样,当返回PromotionalCan时,如何对变量进行操作?谢谢 编辑:PromotionalCan继承自Can,第二种方法是在PromotionalCan中
问题内容: 有没有办法找到泛型的类类型? 以上内容绝对无法编译。 问题答案: 泛型是编译时功能。泛型在编译时添加检查,这在运行时可能没有任何意义。这是一个例子。您只能检查所引用对象的类型,它可能是代码中的超级类型。如果要传递类型T,则必须明确地执行此操作。 要么 注意:类型可能不相同,
instanceof 操作符用于检查一个对象是否属于某个特定的 class。同时,它还考虑了继承。 在许多情况下,可能都需要进行此类检查。例如,它可以被用来构建一个 多态性(polymorphic) 的函数,该函数根据参数的类型对参数进行不同的处理。 instanceof 操作符 语法: obj instanceof Class 如果 obj 隶属于 Class 类(或 Class 类的衍生类),
问题内容: 我了解到Java具有运算符。你能详细说明它的使用位置及其优点吗? 问题答案: 基本上,你检查对象是否是特定类的实例。当你拥有超类或接口类型的对象的引用或参数,并且需要知道实际对象是否具有其他类型(通常更具体)时,通常可以使用它。 例: 请注意,如果你必须经常使用该运算符,通常表明你的设计存在一些缺陷。因此,在设计良好的应用程序中,你应尽可能少使用该运算符(当然,该通用规则也有例外)。
我有一个 但当我这么做的时候, 我该怎么解决这个问题?游戏是超级超级类...