Java 如何引用名称冲突的特定类?
我无法在下面的代码中创建Java 如何引用名称冲突的特定类?,java,oop,Java,Oop,我无法在下面的代码中创建java.awt.Rectangle对象。但是,我仍然可以创建矩形对象。。。 请解释一下为什么会这样 package examples; import java.awt.*; public class Rectangle { public static void main(String[] args) { java.awt.Rectangle rect = new Rectangle(); System.out.println(re
java.awt.Rectangle
对象。但是,我仍然可以创建矩形对象。。。
请解释一下为什么会这样
package examples;
import java.awt.*;
public class Rectangle {
public static void main(String[] args) {
java.awt.Rectangle rect = new Rectangle();
System.out.println(rect.toString());
}
}
请解释一下为什么会这样
package examples;
import java.awt.*;
public class Rectangle {
public static void main(String[] args) {
java.awt.Rectangle rect = new Rectangle();
System.out.println(rect.toString());
}
}
您正在创建Rectangle
类的实例,但试图将其分配给java.awt.Rectangle
变量。您只需将其更改为:
java.awt.Rectangle rect = new java.awt.Rectangle();
当然,您首先应该尽可能避免此类命名冲突,但只要类在包中,您就可以始终使用完全限定名。(在默认包中,事情变得更加棘手,您应该避免。)您的类
Rectangle
从包java.awt
中隐藏类Rectangle
。您需要完全限定的名称:
java.awt.Rectangle rect = new java.awt.Rectangle();
喜欢
package examples;
import java.awt.*;
public class Rectangle {
public static void main(String[] args) {
java.awt.Rectangle rect = new java.awt.Rectangle();
System.out.println(rect.toString());
}
}
解释——这就是为什么它是这里最好的答案。