[英]Why is it needed to import libraries in an interface
我對Java還是很陌生,如果這是一個愚蠢的問題,很抱歉,為什么我們需要在接口中導入庫,我有些困惑。
我了解為什么您實際上需要使用類或主要方法來導入庫。 但是,如果我錯了,請糾正我,在接口中,您只是在聲明帶有參數的方法,而實際上並未對其執行任何操作。 您僅在單獨的類中實現接口時才實際使用它嗎?
例如:
import javax.sql.DataSource;
public interface ExampleInterface {
public void setDataSource(DataSource ds);
}
您為什么需要在這里導入DataSource?
在接口中,您只需要聲明帶有參數的方法,而無需實際對其執行任何操作
是的,但是您仍然聲明它們。 因此,如果希望它們可識別,則需要導入相應的庫。 在您的示例中,您定義了一個方法:
public void setDataSource(DataSource ds);
在您的界面中。 因此,除非您導入javax.sql.DataSource
,否則不會識別您在setDataSource
聲明的參數的類型。
您不需要導入。 您可以在各處使用完全限定的名稱,例如javax.sql.DataSource
,而不僅僅是DataSource
。
但是您需要做一個或另一個來指定您要引用的確切類/接口。 編譯器不接受任何非唯一的簡單名稱。
如果您使用的是類/接口/等,則可能仍需要使用FQN
。 名稱相同,因為命名沖突,我們無法同時導入兩者:
import javax.sql.DataSource;
public interface ExampleInterface {
public void setDataSource(DataSource ds);
public void setActivationDataSource(javax.activation.DataSource ds);
}
這是為了指定您要在接口中使用哪種數據類型,來自哪個包,在一個項目中可能存在具有相同名稱的不同類型的數據,因此需要顯式指定該數據類型,進一步實施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.