如何正确处理不同包中的java接口?
我是Java新手,我有一个接口包。对于接口声明中使用的类型,每个接口都有许多导入如何正确处理不同包中的java接口?,java,interface,Java,Interface,我是Java新手,我有一个接口包。对于接口声明中使用的类型,每个接口都有许多导入 // MyInterface.java... package a.b.c.interfaces; import java.math.BigDecimal; import java.util.List; import java.util.Set; public interface MyInterface() { ... 然后我得到了一个包含模型的包,在其中,我试图创建一个实现MyInterface()的类 我
// MyInterface.java...
package a.b.c.interfaces;
import java.math.BigDecimal;
import java.util.List;
import java.util.Set;
public interface MyInterface() { ...
然后我得到了一个包含模型的包,在其中,我试图创建一个实现MyInterface()
的类
我有两个问题:
MyInterface()
导入到
MyImplementation()
?如果没有,是否需要链接
在编译过程中手动执行李>
MyInterface()
,则
还需要导入接口所需的类型,或者
导入MyInterface.java
是否解决了这个问题对于第一个问题,您必须导入接口,并在类上实现接口 至于第二个问题,您只需要导入
MyInterface
。JVM将处理其余的部分
我强烈建议你放弃oops的概念,因为这是一个太基本的问题
也可以使用任何像Eclipse这样的IDE。Java导入基本上是告诉编译器,当您编写
MyInterface
时,您真正的意思是a.b.c.interfaces.MyInterface
。当然,不使用导入就可以编写Java代码,但它非常冗长,看起来很凌乱
您需要导入任何想要使用的类型,这些类型与您正在编写的类或java.lang
中的类不在同一个包中,因此由于MyInterface
位于a.b.c.interfaces
中,而a.b.c.model
中,您需要导入它
如果要在代码中的任何位置编写其类型,则确实需要导入MyInterface
正在使用的类,而且由于要实现接口,因此需要在方法声明中编写其类型。在Java中,无法使用与另一个类相同的导入
下面是一个不需要导入类型的示例:
UsesBigInteger.java:
import java.math.BigInteger;
public class UsesBigInteger {
public BigInteger get() {
return BigInteger.TEN;
}
}
Main.java
public class Main {
public static void Main(String[] args) {
UsesBigInteger use = new UsesBigInteger();
System.out.println(use.get());
}
}
import java.math.BigInteger;
public class Main {
public static void Main(String[] args) {
UsesBigInteger use = new UsesBigInteger();
BigInteger it = use.get();
System.out.println(it);
}
}
我们不必在这里导入java.math.BigInteger
的原因是我们从来没有在任何地方实际编写BigInteger
,因此我们不需要告诉编译器我们的意思-我们只需从UsesBigInteger.get()传递返回值
,编译器已经知道这是一个java.math.biginger
如果我们想保留对biginger
的引用,我们需要导入它:
Main.java
public class Main {
public static void Main(String[] args) {
UsesBigInteger use = new UsesBigInteger();
System.out.println(use.get());
}
}
import java.math.BigInteger;
public class Main {
public static void Main(String[] args) {
UsesBigInteger use = new UsesBigInteger();
BigInteger it = use.get();
System.out.println(it);
}
}
你为什么不试试?@ScaryWombat:尝试和错误与接触一个能够提供细节的超级知识社区。我选择了后者。另外,我找不到任何关于跨包接口导入的好的StackOverflow Q。我认为您对Java中“导入”的含义有一个基本的误解。不,如果不需要,您不需要导入接口,而且JVM也不需要处理“其余部分”。导入仅保存键入内容。回答前请仔细阅读问题。他只是想实现一个接口,请澄清这一点,导入只定位您直接给出的文件路径,是的,还有其他JVM需要注意的是您的类对象。。。哪一个类被映射到哪一个接口以及我们可以在ITE中使用什么方法即使您不导入,JVM也会处理同样的事情。因此,这不是JVM负责的导入的“其余部分”。据我所知,导入对编译器来说只是有意义的,而对Java运行时(也称为JVM)则没有意义