W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---ohos.utils.net.Uri
& public abstract class Uri
& extends Object
& implements Sequenceable, Comparable<Uri&
幫助構(gòu)建和解析基于 RFC 2396 的統(tǒng)一資源標識符 (URI)。
標準 URI 格式如下:
[scheme:]scheme-specific-part[#fragment]
如 RFC 2396 中所述,URI 分為四種類型:分層、不透明、相對和絕對 URI。
修飾符和類型 | 類 | 描述 |
---|---|---|
static class | Uri.Builder | 快速構(gòu)造統(tǒng)一資源標識符 (URI) 對象。 |
從接口 ohos.utils.Sequenceable 繼承的嵌套類/接口 |
---|
Sequenceable.Producer<T> |
修飾符和類型 | 字段 | 描述 |
---|---|---|
static Uri | EMPTY_URI | 表示一個空的 Uri 對象。 |
static Sequenceable.Producer<Uri> | PRODUCER | 指示 Uri 實例是在對 Parcel 對象進行解組后創(chuàng)建的。 |
修飾符和類型 | 方法 | Description |
---|---|---|
static Uri | appendEncodedPathToUri(Uri orgUri, String path) | 將路徑附加到指定的 Uri 對象。 |
int | compareTo(Uri other) | 將此對象與指定對象進行比較以進行排序。 |
static String | decode(String str) | 使用 UTF-8 編碼解碼指定的字符串。 |
static String | encode(String str) | 使用 UTF-8 編碼對指定的字符串進行編碼。 |
static String | encode(String str, String allow) | 使用 UTF-8 編碼對 allow 參數(shù)指定的字符以外的字符進行編碼。 |
boolean | equals(Object obj) | 指示其他對象是否“等于”這個對象。 |
boolean | getBooleanQueryParam(String key, boolean defaultValue) | 根據(jù)指定的key獲取當前URI中查詢字段的第一個結(jié)果,判斷結(jié)果是否為false或0。 |
abstract String | getDecodedAuthority() | 獲取當前URI的解碼權(quán)限字段。 |
abstract String | getDecodedFragment() | 獲取當前URI的解碼片段字段。 |
abstract String | getDecodedHost() | 獲取當前URI的解碼主機字段。 |
abstract String | getDecodedPath() | 獲取當前 URI 中的解碼路徑字段。 |
abstract List<String> | getDecodedPathList() | 獲取當前 URI 中已解碼路徑的列表。 |
abstract String | getDecodedQuery() | 獲取當前URI中解碼后的查詢字段。 |
abstract Map<String,List<String>> | getDecodedQueryParams() | 獲取當前 URI 的查詢字段中的所有搜索條件和值。 |
abstract String | getDecodedSchemeSpecificPart() | 獲取當前 URI 中已解碼的 scheme-specific-part 字段。 |
abstract String | getDecodedUserInfo() | 獲取當前 URI 的解碼后的 user-info 字段。 |
abstract String | getEncodedAuthority() | 獲取當前 URI 的編碼權(quán)限字段。 |
abstract String | getEncodedFragment() | 獲取當前 URI的編碼片段字段。 |
abstract String | getEncodedHost() | 獲取當前 URI 的編碼主機字段。 |
abstract String | getEncodedPath() | 獲取當前 URI的編碼路徑字段。 |
abstract String | getEncodedQuery() | 獲取當前URI的編碼查詢字段。 |
abstract String | getEncodedSchemeSpecificPart() | 獲取當前 URI 中編碼的 scheme-specific-part 字段。 |
abstract String | getEncodedUserInfo() | 獲取當前 URI 的編碼后的 user-info 字段。 |
String | getFirstQueryParamByKey(String key) | 根據(jù)指定的key,獲取當前URI中與查詢字段匹配的第一個結(jié)果。 |
String | getLastPath() | 獲取當前 URI 的最后一個路徑。 |
Uri | getLowerCaseScheme() | 將當前 Uri 對象中的方案字段設(shè)置為小寫。 |
abstract int | getPort() | 獲取當前URI的端口字段。 |
Set<String> | getQueryParamNames() | 獲取當前 URI 的查詢字段中的所有名稱。 |
List<String> | getQueryParamsByKey(String key) | 根據(jù)指定的key,獲取當前URI中與查詢字段匹配的所有結(jié)果。 |
String | getScheme() | 獲取當前 URI 的 scheme 字段。 |
static Uri | getUriFromFile(File file) | 基于給定文件創(chuàng)建分層 Uri 對象。 |
static Uri | getUriFromFileCanonicalPath(File file) | 根據(jù)給定文件的規(guī)范路徑創(chuàng)建分層 Uri 對象。 |
static Uri | getUriFromParts(String scheme, String ssp, String fragment) | 根據(jù)給定的字符串創(chuàng)建一個不透明的 Uri 對象。 |
boolean | hasFileDescriptor() | 檢查此 Sequenceable 的實現(xiàn)類是否包含 FileDescriptor 對象數(shù)據(jù)。 |
int | hashCode() | 返回對象的哈希碼值。 |
boolean | isAbsolute() | 檢查當前 URI 是否為絕對 URI。 |
abstract boolean | isHierarchical() | 檢查當前 URI 是否是分層的。 |
boolean | isOpaque() | 檢查當前 URI 是否是不透明的。 |
boolean | isRelative() | 檢查當前 URI 是否是相對的。 |
abstract Uri.Builder | makeBuilder() | 獲取當前 URI 的 Builder 對象,以便您可以使用該對象添加或修改 URI 組件。 |
static Uri | parse(String uriStr) | 根據(jù)給定的符合 RFC 2396 的字符串創(chuàng)建 Uri 對象。 |
static Uri | readFromParcel(Parcel in) | 從 Parcel 中讀取 Uri 對象。 |
abstract String | toString() | 獲取編碼后的URI對象的完整字符串。 |
boolean | unmarshalling(Parcel in) | 從 Parcel 對象中解組 URI 對象。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
從接口 ohos.utils.Sequenceable 繼承的方法 |
---|
marshalling |
public static final Uri EMPTY_URI
表示一個空的 Uri 對象。 該值是一個空字符串。
public static final Sequenceable.Producer<Uri> PRODUCER
指示 Uri 實例是在對 Parcel 對象進行解組后創(chuàng)建的。
public abstract boolean isHierarchical()
檢查當前 URI 是否是分層的。 例如,http://www.mycompany.com。 分層 URI 可以是絕對的,但其特定于方案的部分字段必須以斜杠 (/) 開頭。 也可以是相對的。
返回:
如果是分層 URI,則返回 true; 否則返回 false。
public boolean isOpaque()
檢查當前 URI 是否是不透明的。 例如:www.mycompany.com。 不透明 URI 必須是絕對 URI,并且其特定于方案的部分字段不能以斜杠 (/) 開頭。
返回:
如果是不透明的 URI,則返回 true; 否則返回 false。
public boolean isRelative()
檢查當前 URI 是否是相對的。 例如:www.mycompany.com。 相對 URI 不包含方案字段。
返回:
如果是相對 URI,則返回 true; 否則返回 false。
public boolean isAbsolute()
檢查當前 URI 是否為絕對 URI。 例如:http://www.mycompany.com。 絕對 URI 必須包含方案字段。
返回:
如果是絕對 URI,則返回 true; 否則返回 false。
public String getScheme()
獲取當前 URI 的 scheme 字段。 例如,http 是 URI http://www.mycompany.com 的方案字段。
返回:
返回方案字段; 如果當前 URI 不包含方案字段,則返回 null。
public abstract String getDecodedSchemeSpecificPart()
獲取當前 URI 中已解碼的 scheme-specific-part 字段。 它是方案分隔符 (:) 和片段分隔符 (#) 之間的所有內(nèi)容。
例如,在 URI https://www.mycompany.com/cn/?ic_medium=direct 中,//www.mycompany.com/cn/?ic_medium=direct 是 scheme-specific-part 字段。
返回:
返回解碼的方案特定部分字段; 如果當前 URI 不包含方案特定部分字段,則返回 null。
public abstract String getEncodedSchemeSpecificPart()
獲取當前 URI 中編碼的 scheme-specific-part 字段。
返回:
返回編碼的方案特定部分字段; 如果當前 URI 不包含方案特定部分字段,則返回 null。
public abstract String getDecodedAuthority()
獲取當前URI的解碼權(quán)限字段。 分層 URI 的格式為 [scheme:][//authority][path][?query][#fragment]。 例如,www.mycompany.com 是 URI https://www.mycompany.com/cn/?ic_medium=direct 的權(quán)限字段。
返回:
返回解碼的權(quán)限字段; 如果當前 URI 不包含權(quán)限字段,則返回 null。
public abstract String getEncodedAuthority()
獲取當前 URI 的編碼權(quán)限字段。
返回:
返回編碼的權(quán)限字段; 如果當前 URI 不包含權(quán)限字段,則返回 null。
public abstract String getDecodedUserInfo()
獲取當前 URI 的解碼后的 user-info 字段。
服務(wù)器類型的權(quán)限結(jié)構(gòu),格式為[user-info@]host[:port]。
例如,test 是權(quán)限結(jié)構(gòu) test@mycompany.com 的 user-info 字段。
返回:
返回解碼的用戶信息字段; 如果當前 URI 不包含 user-info 字段,則返回 null。
public abstract String getEncodedUserInfo()
獲取當前 URI 的編碼后的 user-info 字段。
返回:
返回編碼的用戶信息字段; 如果當前 URI 不包含 user-info 字段,則返回 null。
public abstract String getDecodedHost()
獲取當前URI的解碼主機字段。
服務(wù)器類型的權(quán)限結(jié)構(gòu),格式為[user-info@]host[:port]。
例如,mycompany.com 是權(quán)限結(jié)構(gòu) test@mycompany.com 的主機字段。
返回:
返回解碼后的主機字段; 如果當前 URI 不包含主機字段,則返回 null。
public abstract String getEncodedHost()
獲取當前 URI 的編碼主機字段。
返回:
返回編碼的主機字段; 如果當前 URI 不包含主機字段,則返回 null。
public abstract int getPort()
獲取當前URI的端口字段。
服務(wù)器類型的權(quán)限結(jié)構(gòu),格式為[user-info@]host[:port]。
例如,443 是權(quán)限結(jié)構(gòu) test@mycompany.com:443 的端口字段。
返回:
返回當前 URI 的端口字段; 如果當前 URI 不包含端口字段,則返回 -1。
public abstract String getDecodedPath()
獲取當前 URI 中的解碼路徑字段。
返回:
返回解碼后的路徑字段; 如果當前 URI 不包含路徑字段,則返回 null。
public abstract String getEncodedPath()
獲取當前URI的編碼路徑字段。
返回:
返回編碼的路徑字段; 如果當前 URI 不包含路徑字段,則返回 null。
public abstract List<String> getDecodedPathList()
獲取當前 URI 中已解碼路徑的列表。
一個 URI 中可能有多個路徑字段,例如://authority/path1/path2/path3?query#fragment。
返回:
返回解碼路徑列表; 如果沒有可用的路徑,則返回一個空列表。
public abstract String getDecodedQuery()
獲取當前URI中解碼后的查詢字段。
它是查詢分隔符 (?) 和片段分隔符 (#) 之間的所有內(nèi)容。 例如 ic_medium=direct 是 URI https://www.mycompany.com/cn/?ic_medium=direct 的查詢字段。
返回:
返回解碼后的查詢字段; 如果當前 URI 不包含查詢字段,則返回 null。
public abstract String getEncodedQuery()
獲取當前URI的編碼查詢字段。
返回:
返回編碼的查詢字段; 如果當前 URI 不包含查詢字段,則返回 null。
public abstract Map<String,List<String>> getDecodedQueryParams()
獲取當前 URI 的查詢字段中的所有搜索條件和值。
返回:
返回所有搜索條件的映射。 該映射由搜索條件名稱(稱為鍵)和搜索條件值(稱為值)組成。 映射中的值與 URI 的查詢語句的順序相同。 如果指定的鍵沒有關(guān)聯(lián)的值,則返回包含 "" 的映射。
public abstract String getDecodedFragment()
獲取當前URI的解碼片段字段。
例如 28 是 URI https://www.mycompany.com/cn/?ic_medium=direct#28 的片段字段。
返回:
返回解碼的片段字段; 如果當前 URI 不包含片段字段,則返回 null。
public abstract String getEncodedFragment()
獲取當前URI的編碼片段字段。
返回:
返回編碼的片段字段; 如果當前 URI 不包含片段字段,則返回 null。
public abstract Uri.Builder makeBuilder()
獲取當前 URI 的 Builder 對象,以便您可以使用該對象添加或修改 URI 組件。
返回:
返回 Builder 對象。
public abstract String toString()
獲取編碼后的URI對象的完整字符串。 例如,https://www.mycompany.com/cn/?ic_medium=direct#28。
覆蓋:
類 Object 中的 toString
返回:
返回當前 URI 對象的字符串。
public boolean unmarshalling(Parcel in)
從 Parcel 對象中解組 URI 對象。
目前不支持此方法。 使用 Uri#PRODUCER 進行交替。
指定者:
在接口 Sequenceable 中解組
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 指示 Parcel 對象。 |
返回:
如果解組成功,則返回 true; 否則返回 false。
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果調(diào)用此方法,則拋出此異常,因為當前不支持它。 |
public static String encode(String str)
使用 UTF-8 編碼對指定的字符串進行編碼。
除了字母(A-Z 和 a-z)、數(shù)字 0-9 和非保留字符(“_-!.~'()*”)之外的所有字符都可以編碼。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
str | 指示要編碼的字符串 |
返回:
返回編碼后的字符串; 如果在輸入?yún)?shù)中傳遞了 null,則返回 null。
public static String encode(String str, String allow)
使用 UTF-8 編碼對 allow 參數(shù)指定的字符以外的字符進行編碼。
字母(A-Z 和 a-z)、數(shù)字 0-9 和非保留字符(“_-!.~'()*”)不會被編碼。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
str | 指示要編碼的字符串 |
allow | 表示不會被編碼的附加字符集。 您可以將其設(shè)置為空。 |
返回:
返回編碼后的字符串; 如果在輸入?yún)?shù)中傳遞了 null,則返回 null。
public static String decode(String str)
使用 UTF-8 編碼解碼指定的字符串。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
str | 指示要解碼的字符串 |
返回:
返回解碼后的字符串; 如果在輸入?yún)?shù)中傳遞了 null,則返回 null。
public static Uri getUriFromParts(String scheme, String ssp, String fragment)
根據(jù)給定的字符串創(chuàng)建一個不透明的 Uri 對象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
scheme | 指示不透明 URI 中的方案字段。 |
ssp | 指示不透明 URI 中的方案特定部分字段。 |
fragment | 表示不透明 URI 中的片段字段。 |
返回:
返回一個不透明的 Uri 對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果方案或方案特定部分為空,則引發(fā)此異常。 |
public static Uri getUriFromFile(File file)
基于給定文件創(chuàng)建分層 Uri 對象。
URI 的格式為 file://<absolute path>。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
file | 指示用于創(chuàng)建 URI 的文件。 |
返回:
返回一個分層的 Uri 對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果文件參數(shù)為空,則引發(fā)此異常。 |
public static Uri getUriFromFileCanonicalPath(File file) throws IOException
根據(jù)給定文件的規(guī)范路徑創(chuàng)建分層 Uri 對象。 URI 的格式為 file://<canonical path>。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
file | 指示用于創(chuàng)建 URI 的文件。 |
返回:
返回一個分層的 Uri 對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤,則引發(fā)此異常。 |
NullPointerException | 如果文件參數(shù)為空,則引發(fā)此異常。 |
public static Uri appendEncodedPathToUri(Uri orgUri, String path)
將路徑附加到指定的 Uri 對象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
orgUri | 指示要將路徑附加到的 Uri 對象。 |
path | 指示要附加的編碼路徑字符串。 |
返回:
返回附加了編碼路徑的 Uri 對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的 Uri 對象是不透明的 URI,則引發(fā)此異常。 |
public static Uri parse(String uriStr)
根據(jù)給定的符合 RFC 2396 的字符串創(chuàng)建 Uri 對象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
uriStr | 表示編碼后的 URI 字符串,必須符合 RFC 2396。 |
返回:
返回一個 Uri 對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 uriStr 為 null 或為空,則引發(fā)此異常。 |
IllegalArgumentException | 如果 uriStr 無效,則引發(fā)此異常。 |
public static Uri readFromParcel(Parcel in)
從 Parcel 中讀取 Uri 對象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 指示 Parcel 對象。 |
返回:
返回 Uri 對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果輸入?yún)?shù)為 null 或解組失敗,則引發(fā)此異常。 |
public String getLastPath()
獲取當前 URI 的最后一個路徑。
返回:
返回 URI 中解碼后的最后一個路徑; 如果最后一個路徑不存在,則返回 null。
public List<String> getQueryParamsByKey(String key)
根據(jù)指定的key,獲取當前URI中與查詢字段匹配的所有結(jié)果。
鍵可以是重復(fù)的,并且可能沒有關(guān)聯(lián)的值。 因此,在查詢字段中的語句序列中返回匹配結(jié)果列表。 如果指定的鍵存在但沒有關(guān)聯(lián)的值,將返回一個包含“”的列表。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 表示解碼后的密鑰 |
返回:
返回 URI 的查詢字段中按照語句序列排序的所有匹配的解碼結(jié)果; 如果沒有找到結(jié)果,則返回一個空列表。
public String getFirstQueryParamByKey(String key)
根據(jù)指定的key,獲取當前URI中與查詢字段匹配的第一個結(jié)果。
鍵可以是重復(fù)的,并且可能沒有關(guān)聯(lián)的值。 因此,在查詢字段中的語句序列中返回第一個匹配的結(jié)果。 如果指定的鍵沒有值,則返回""。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 表示解碼后的密鑰 |
返回:
返回第一個匹配的解碼結(jié)果; 如果沒有找到結(jié)果,則返回 ""。
public Set<String> getQueryParamNames()
獲取當前 URI 的查詢字段中的所有名稱。
返回:
返回當前 URI 的解碼查詢字段中的所有名稱; 如果沒有查詢字段,則返回一個空列表。
public boolean getBooleanQueryParam(String key, boolean defaultValue)
根據(jù)指定的key獲取當前URI中查詢字段的第一個結(jié)果,判斷結(jié)果是否為false或0。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 表示解碼后的密鑰 |
defaultValue | 如果沒有找到結(jié)果,則表示返回的默認值。 |
返回:
如果未找到匹配項,則返回 defaultValue; 如果匹配值為 false 或 0,則返回 false; 其他情況返回 true。
public Uri getLowerCaseScheme()
將當前 Uri 對象中的方案字段設(shè)置為小寫。
返回:
返回帶有小寫方案字段的 Uri 對象。
public boolean equals(Object obj)
Description copied from class: Object
指示其他對象是否“等于”這個對象。 equals 方法在非空對象引用上實現(xiàn)等價關(guān)系:
Object 類的 equals 方法實現(xiàn)了對象上最有區(qū)別的可能等價關(guān)系; 也就是說,對于任何非空引用值 x 和 y,當且僅當 x 和 y 引用同一個對象(x == y 的值為 true)時,此方法才返回 true。
請注意,每當重寫該方法時,通常都需要重寫 hashCode 方法,以維護 hashCode 方法的一般約定,即相等的對象必須具有相等的哈希碼。
重寫:
等于 Object 中的類
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
obj | 要與之比較的參考對象。 |
返回:
如果此對象與 obj 參數(shù)相同,則為 true; 否則為false。
public int hashCode()
Description copied from class: Object
返回對象的哈希碼值。 支持這種方法是為了有利于哈希表,例如 HashMap 提供的那些。
hashCode 的一般合約是:
在合理可行的情況下,由 Object 類定義的 hashCode 方法確實為不同的對象返回不同的整數(shù)。 (這通常通過將對象的內(nèi)部地址轉(zhuǎn)換為整數(shù)來實現(xiàn),但 Java? 編程語言不需要這種實現(xiàn)技術(shù)。)
重寫:
Object 類中的 hashCode
返回:
此對象的哈希碼值。
public int compareTo(Uri other)
Description copied from interface: Comparable
將此對象與指定對象進行比較以進行排序。返回負整數(shù)、零或正整數(shù),因為此對象小于、等于或大于指定對象。 實現(xiàn)者必須確保所有 x 和 y 的 sgn(x.compareTo(y)) == -sgn(y.compareTo(x))。 (這意味著如果 y.compareTo(x) 拋出異常,則 x.compareTo(y) 必須拋出異常。)
實現(xiàn)者還必須確保關(guān)系是可傳遞的:(x.compareTo(y)>0 && y.compareTo(z)>0) 意味著 x.compareTo(z)>0。
最后,實現(xiàn)者必須確保 x.compareTo(y)==0 意味著 sgn(x.compareTo(z)) == sgn(y.compareTo(z)),對于所有 z。
強烈建議但不嚴格要求 (x.compareTo(y)==0) == (x.equals(y))。一般來說,任何實現(xiàn)了 Comparable 接口并違反此條件的類都應(yīng)該清楚地表明這一事實。推薦的語言是“注意:這個類有一個與equals不一致的自然順序。”
在前面的描述中,符號sgn(expression)表示數(shù)學(xué)符號函數(shù),它被定義為根據(jù)表達式的值是負數(shù)、零還是正數(shù)返回-1、0或1之一。
指定者:
接口 Comparable<Uri> 中的 compareTo
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
other | 要比較的對象 |
返回:
負整數(shù)、零或正整數(shù),因為此對象小于、等于或大于指定對象。
public boolean hasFileDescriptor()
Description copied from interface: Sequenceable
檢查此 Sequenceable 的實現(xiàn)類是否包含 FileDescriptor 對象數(shù)據(jù)。 如果自定義 Sequenceable 類包含任何 FileDescriptor 數(shù)據(jù),則應(yīng)覆蓋此方法。 此方法默認返回 false。
指定者:
接口 Sequenceable 中的 hasFileDescriptor
返回:
如果它包含 FileDescriptor 數(shù)據(jù),則返回 true; 否則返回 false。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: