簡體   English   中英

為什么需要在界面中導入庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM