Flutter、in_app_purchase:显示订阅到期日期或状态的方式

如何解决Flutter、in_app_purchase:显示订阅到期日期或状态的方式

使用 in_app_purchase: ^0.3.5+1 包,我试图验证用户是否在 iOS 上拥有有效订阅

我可以通过 productID 获得 transactionDatepurchaseDetails.productID & purchaseDetails.transactionDate。但我似乎无法获得到期日期或状态。观看他们谈论“状态”的苹果视频堆积如山。如果交易日期知道他们是否取消,我不确定是否有人开始免费试用 3 天,因此没有信心将所有内容都基于此交易日期。

我可以得到 purchaseDetails.verificationData.localVerificationData,它似乎是一个 ANS1 字符串,这可能有更多信息,但我似乎无法对其进行解码。有没有人现在如何为iOS解码?或者知道另一种获取订阅状态的方法

我尽量不使用诸如 RevenueCat 之类的平台(因为他们会分一杯羹),不过它们似乎提供了这样的功能

以下是 ASN.1 字符串:

MIIbiQYJKoZIhvcNAQcCoIIbejCCG3YCAQExCzAJBgUrDgMCGgUAMIILKgYJKoZI
hvcNAQcBoIILGwSCCxcxggsTMAoCAQgCAQEEAhYAMAoCARQCAQEEAgwAMAsCAQEC
AQEEAwIBADALAgEDAgEBBAMMATMwCwIBCwIBAQQDAgEAMAsCAQ8CAQEEAwIBADAL
AgEQAgEBBAMCAQAwCwIBGQIBAQQDAgEDMAwCAQoCAQEEBBYCNCswDAIBDgIBAQQE
AgIAyzANAgENAgEBBAUCAwIjqDANAgETAgEBBAUMAzEuMDAOAgEJAgEBBAYCBFAy
NTYwGAIBBAIBAgQQ/UG8mQyNEnmF2PQy51nhPDAbAgEAAgEBBBMMEVByb2R1Y3Rp
b25TYW5kYm94MBsCAQICAQEEEwwRbWlsa2kuZm9jdXMudGltZXIwHAIBBQIBAQQU
j88VIyoRl7su71RrYMoWKY/VmoMwHgIBDAIBAQQWFhQyMDIxLTAxLTA5VDEzOjEz
OjM4WjAeAgESAgEBBBYWFDIwMTMtMDgtMDFUMDc6MDA6MDBaMEICAQcCAQEEOqon
CJy6w5atxqYbNoBJJa3W9WB6qVDijWLZvtDp4yolmsIVkHghqERYsDDj/FUfM9sN
eHQNEYbz8mowTQIBBgIBAQRF4nUjxdFAA0i0vWAK9OR1Y9990SU5jby3UYEwRDLm
rYQ4UJhpEm/mN20wqvhxSqUULT40ZvHz6TXjWvfnvIMIS7/A92nbMIIBgQIBEQIB
AQSCAXcxggFzMAsCAgatAgEBBaimADALAgIGsAIBAQQCFgAwCwICBrICAQEEAgwA
MAsCAgazAgEBBaimADALAgIGtAIBAQQCDAAwCwICBrUCAQEEAgwAMAsCAga2AgEB
BaimAdamAgIGpQIBAQQDAgEBMAwCAgaragEBBAMCAQMwDAICBq4CAQEEAwIBAdam
AgIGsQIBAQQDAgEAMAwCAga3AgEBBAMCAQAwEgICBq8CAQEECQIHA41+qEntmzAb
AgIGpwIBAQQSDBAxMDAwMDAwNzYyOTU2MjUyMBsCAgapAgEBBBIMEDEwMDAwMDA3
NjI5NTU2MDEwHwICBqYCAQEEFgwUc3Vic2NyaXB0aW9uQW5udWFsMjUwHwICBqgC
AQEEFhYUMjAyMS0wMS0wOVQwodoyMjo0OVowHwICBqoCAQEEFhYUMjAyMS0wMS0w
OVQwodoxodoxMVowHwICBqwCAQEEFhYUMjAyMS0wMS0wOVQwOToyMjo0OVowggGB
AgERAgEBBIIBdzGCAXMwCwICBq0CAQEEAgwAMAsCAgawAgEBBAIWADALAgIGsgiB
AQQCDAAwCwICBrMCAQEEAgwAMAsCAga0AgEBBaimADALAgIGtQIBAQQCDAAwCwIC
BrYCAQEEAgwAMAwCAgalAgEBBAMCAQEwDAICBqsCAQEEAwIBAzAMAgIGrgIBAQQD
AgEAMAwCAgaxAgEBBAMCAQAwDAICBrcCAQEEAwIBADASAgIGrwIBAQQJAgcDjX6o
Se3OMBsCAganAgEBBBIMEDEwMDAwMDA3NjI5NjI3MzUwGwICBqkCAQEEEgwQMTAw
MDAwMDc2Mjk1NTYwMTAfAgIGpgIBAQQWDBRzdWJzY3JpcHRpb25Bbm51YWwyNTAf
AgIGqAIBAQQWFhQyMDIxLTAxLTA5VDA5OjIyOjQ5WjAfAgIGqgIBAQQWFhQyMDIx
LTAxLTA5VDA4OjE4OjExWjAfAgIGrAIBAQQWFhQyMDIxLTAxLTA5VDEwOjIyOjQ5
WjCCAYECARECAQEEggF3MYIBczALAgIGrQIBAQQCDAAwCwICBrACAQEEAhYAMAsC
AgayAgEBBaimADALAgIGswIBAQQCDAAwCwICBrQCAQEEAgwAMAsCAga1AgEBBaim
ADALAgIGtgIBAQQCDAAwDAICBqUCAQEEAwIBATAMAgIGqwIBAQQDAgEDMAwCAgau
AgEBBAMCAQAwDAICBrECAQEEAwIBAdamAgIGtwIBAQQDAgEAMBICAgavAgEBBAkC
BwONfqhJ7+owGwICBqcCAQEEEgwQMTAwMDAwMDc2Mjk3MTU2MTAbAgIGqQIBAQQS
DBAxMDAwMDAwNzYyOTU1NjAxMB8CAgamAgEBBBYMFHN1YnNjcmlwdGlvbkFubnVh
bDI1MB8CAgaoAgEBBBYWFDIwMjEtMDEtMDlUMTA6MjI6NDlaMB8CAgaqAgEBBBYW
FDIwMjEtMDEtMDlUMDg6MTg6MTFaMB8CAgasAgEBBBYWFDIwMjEtMDEtMDlUMTE6
MjI6NDlaMIIBgQIBEQIBAQSCAXcxggFzMAsCAgatAgEBBaimADALAgIGsAIBAQQC
FgAwCwICBrICAQEEAgwAMAsCAgazAgEBBaimADALAgIGtAIBAQQCDAAwCwICBrUC
AQEEAgwAMAsCAga2AgEBBaimAdamAgIGpQIBAQQDAgEBMAwCAgaragEBBAMCAQMw
DAICBq4CAQEEAwIBAdamAgIGsQIBAQQDAgEAMAwCAga3AgEBBAMCAQAwEgICBq8C
AQEECQIHA41+qEnx5DAbAgIGpwIBAQQSDBAxMDAwMDAwNzYyOTc3NzcwMBsCAgap
AgEBBBIMEDEwMDAwMDA3NjI5NTU2MDEwHwICBqYCAQEEFgwUc3Vic2NyaXB0aW9u
QW5udWFsMjUwHwICBqgCAQEEFhYUMjAyMS0wMS0wOVQxMToyMjo1NFowHwICBqoC
AQEEFhYUMjAyMS0wMS0wOVQwodoxodoxMVowHwICBqwCAQEEFhYUMjAyMS0wMS0w
OVQxMjoyMjo1NFowggGBAgERAgEBBIIBdzGCAXMwCwICBq0CAQEEAgwAMAsCAgaw
AgEBBAIWADALAgIGsgiBAQQCDAAwCwICBrMCAQEEAgwAMAsCAga0AgEBBaimADAL
AgIGtQIBAQQCDAAwCwICBrYCAQEEAgwAMAwCAgalAgEBBAMCAQEwDAICBqsCAQEE
AwIBAzAMAgIGrgIBAQQDAgEAMAwCAgaxAgEBBAMCAQAwDAICBrcCAQEEAwIBADAS
AgIGrwIBAQQJAgcDjX6oSfQwMBsCAganAgEBBBIMEDEwMDAwMDA3NjI5ODk2ODMw
GwICBqkCAQEEEgwQMTAwMDAwMDc2Mjk1NTYwMTAfAgIGpgIBAQQWDBRzdWJzY3Jp
cHRpb25Bbm51YWwyNTAfAgIGqAIBAQQWFhQyMDIxLTAxLTA5VDEyOjIyOjU0WjAf
AgIGqgIBAQQWFhQyMDIxLTAxLTA5VDA4OjE4OjExWjAfAgIGrAIBAQQWFhQyMDIx
LTAxLTA5VDEzOjIyOjU0WjCCAYECARECAQEEggF3MYIBczALAgIGrQIBAQQCDAAw
CwICBrACAQEEAhYAMAsCAgayAgEBBaimADALAgIGswIBAQQCDAAwCwICBrQCAQEE
AgwAMAsCAga1AgEBBaimADALAgIGtgIBAQQCDAAwDAICBqUCAQEEAwIBATAMAgIG
qwIBAQQDAgEDMAwCAgauAgEBBAMCAQAwDAICBrECAQEEAwIBATAMAgIGtwIBAQQD
AgEAMBICAgavAgEBBAkCBwONfqhJ7ZowGwICBqcCAQEEEgwQMTAwMDAwMDc2Mjk1
NTYwMTAbAgIGqQIBAQQSDBAxMDAwMDAwNzYyOTU1NjAxMB8CAgamAgEBBBYMFHN1
YnNjcmlwdGlvbkFubnVhbDI1MB8CAgaoAgEBBBYWFDIwMjEtMDEtMDlUMDg6MTg6
MDlaMB8CAgaqAgEBBBYWFDIwMjEtMDEtMDlUMDg6MTg6MTFaMB8CAgasAgEBBBYW
FDIwMjEtMDEtMDlUMDg6MjA6MDlaoIIOZTCCBXwwggRkoAMCAQICCA7rV4fnngmN
MA0GCSqGSIb3DQEBBQUAMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUg
SW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlv
bnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25z
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MTExMzAyMTUwOVoXDTIzMDIw
NzIxNDg0N1owgYkxNzA1BgNVBAMMLk1hYyBBcHAgU3RvcmUgYW5kIgludW5lcyBT
dG9yZSBSZWNlaXB0IFNpZ25pbmcxLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBE
ZXZlbG9wZXIgUmVsYXRpb25zMRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQG
EwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQocggEBAKXPgf0looFb1oft
I9ozHI7iI8ClxCbLPcaf7EoNVYb/pALXl8o5VG19f7JUGJ3ELFJxjmR7gs6JuknW
COW0iHHPP1tGLsbEHbgDqViiBD4heNXbt9COEo2DTFsqaDeTwvK9HsTSoQxKWFKr
EuPt3R+YFZA1LcLMEsqNSIH3WHhUa+iMMTYfSgYMR1TzN5C4spKJfV+khUrhwJzg
uqS7gpdj9CuTwf0+b8rB9Typj1IawCUKdg7e/pn+/8Jr9VterHNRSQhWicxDkMyO
gQLQoJe2XLGhaWmHkBBoJiY5uB0Qc7AKXcVz0N92O9gt2Yge4+wHz+KO0NP6JlWB
7+IDSSMCAwEAAaOCAdcwggHTMD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYj
aHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMDQwHQYDVR0OBBYEFJGk
nPzEdrefoIr0TfWPNl3tKwSFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcX
Cam2GGCL7Ou69kdZxVJUo7cwggEeBgNVHSAEggEVMIIBETCCAQ0GCiqGSIb3Y2QF
BgEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZp
Y2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVu
IGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNl
LCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ug
c3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2Nl
cnRpZmljYXRlYXV0aG9yaXR5LzAOBgNVHQ8BAf8EBAMCB4AwEAYKKoZIhvdjZAYL
AQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAA2mG9MuPeNbKwduQpZs0+iMQzCCX+Bc
0Y2+vQ+9GvwlktuMhcOAWd/j4tcuBRSSDdu2uP78NS58y60Xa45/H+R3ubFnlbQT
XqYZhnb4WiCV52OMD3P86O3GH66Z+GvixKDgKDrAEDctuaAEOR9zucgF/fLefxoq
Km4rAfygIFzZ630npjP49ZjgvkTbsUxn/G4KT8niBqjSl/OnjmtRolqEdWXRFgRi
48Ff9Qipz2jZkgDJwYyz+I0AZLpYYMB8r491ymm5WyrWHWhumEL1TKc3GZvMOxx6
GUPzo22/SGAGDdask+zegluR2i0j0I78oGmcFxuegHs5R0UwYS/HE6gwggQiMIID
CqADAgECAggB3rzEOW2gEDANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzET
MBEGA1UEChMKQXBwbGUgSW5jLjemmCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTMwMjA3MjE0
ODQ3WhcNMjMwMjA3MjE0ODQ3WjCBljELMAkGA1UEBhMCVVmxezARBgNVBAoMCkFw
cGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVs
YXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0
aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQocggEBAMo4VKbLVqrIJDlI6Yzu7F+4fyaRvDRTes58Y4Bhd2RepQcj
tjn+UC0VVlhwLX7EbsFKhT4v8N6EGqFXya97GP9q+hUSSRUIGayq2yoy7ZZjaFIV
PYyK7L9rGJXgA6wbfZcFZ84OhZU3au0Jtq5nzVFkn8Zc0bxXbmc1gHY2pIeBbjiP
2CsVTnsl2Fq/ToPBjdKT1RpxtWCcnTNOVfkSWAyGuBYNweV3RY1QSLorLeSUheHo
xJ3GaKWwo/xnfnC6AllLd0KRObn1zefM78A7SIym5SFd/Wpqu6cWNWDS5q3zRinJ
6MOL6XnAamFnFbLw/eVovGJfbs+Z3e8bY/6SZasCAwEAAaOBpjCBozAdBgNVHQ4E
FgQUiCcXCam2GGCL7Ou69kdZxVJUo7cwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
GDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAuBgNVHR8EJzAlMCOgIaAfhh1odHRw
Oi8vY3JsLmFwcGxlLmNvbS9yb290LmNybDAOBgNVHQ8BAf8EBAMCAYYwEAYKKoZI
hvdjZAYCAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAE/P71m+LPWybC+P7hOHMugF
Nahui33JaQy52Re8dyzUZ+L9mm06WVzfgwG9sq4qYXKxr83DRTCPo4MNzh1HtPGT
iqN0m6TDmHKHOz6vRQuSVLkyu5AYU2sKThC22R1QbCGAColov4xrWzw9pv3e9w0j
HQtKJoc/upGSTKQZEhltV/V6WId7aIrkhoxK6+JJFKql3VUAqa67SzCu4acxvCmA
5gl35b40ogHKf9ziCuY7uLvsumKV8wVjQYLNDzsdTJWk26v5yZXpT+RN5yaZgem8
+bQp0gF6ZuEujPYhisX4eOGBrr/TkJ2prfOv/TgalmcwHFGlXOxxioK0bA8MFR8w
ggS7MIIDo6ADAgECAgECMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlVTMRMw
EQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9u
IEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTAeFw0wNjA0MjUyMTQw
MzZaFw0zNTAyMDkyMTQwMzZaMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBs
ZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEW
MBQGA1UEAxMNQXBwbGUgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQocggEBAOSRqQkfkdseR1DrBe1eeYQt6zaiV0xV7IsZid75S2z1B6siMALoGD74
UAnTf0GomPnRymacJGsR0KO75Bsqwx+VnnoMpEeLW9QWNzPLxA9NzhRp0ckZcvVd
DtV/X5vyJQO6VY9NXQ3xZDUjFUsVWR2zlPf2nJ7PULrBWFBnjwi0IPfLrCwgb3C2
PwEwjLdDzw+dPfMRSSgayP7OtbkO2V4c1ss9tTqt9A8OAJILsSEWLnTVPA3bYhar
o3GSR1NVwa8vQbP4++NwzeajTEV+H0xrUJZBicR0YgsQg0GHM4qBsTBY7FoEMoxo
s48d3mVz/2deZbxJ2HafMxRloXeUyS0CAwEAAaOCAXowggF2MA4GA1UdDwEB/wQE
AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQr0GlHlHYJ/vRrjS5ApvdH
TX8IXjAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjCCAREGA1UdIASC
AQgwggEEMIIBAAYJKoZIhvdjZAUBMIHyMCoGCCsGAQUFBwIBFh5odHRwczovL3d3
dy5hcHBsZS5jb20vYXBwbGVjYS8wgcMGCCsGAQUFBwICMIG2GoGzUmVsaWFuY2Ug
b24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRh
bmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNv
bmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmlj
YXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wDQYJKoZIhvcNAQEFBQADggEBAFw2
mUwteLftjJvc83eb8nbSdzBPwR+Fg4UbmT1HN/Kpm0COLNSxkBLYvvRzm+7SZA/L
eU802KI++Xj/a8gH7H05g4tTINM4xLG/mk8Ka/8r/FmnBQl8F0BWER5007eLIztH
o9VvJOLr0bdw3w9F4SfK8W147ee1Fxeo3H4iNcol1dkP1mvUoiQjEfehrI9zgWDG
G1sJL5Ky+ERI8GA4nhX1PSZnIIozavcNgs/e66Mv+VNqW2TAYzN39zoHLFbr2g8h
Dtq6cxlPtdk2f8GHVdmnmbkyQvvY1XGefqFStxu9k0IkEirHDx22TZxeY8hLgBdQ
qorV2uT80AkHN7B1dSExggHLMIIBxwIBATCBozCBljELMAkGA1UEBhMCVVmxezAR
BgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZl
bG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxv
cGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIIDutXh+eeCY0w
CQYFKw4DAhoFADANBgkqhkiG9w0BAQEFAASCAQA00os/nEDLvWqxtyQvpSTIJUH4
fo3p7B9pNkKt7faN1xaj7YJtos1EpGYpw6J4qeCrERAPoNHsUrAFIkxN2KBG86qB
JNIULlY5qGVmsPcAvVceb4jEwHTghiU4+1aGM2oUTOBoVxpJbA6XOT9ZY6ePz0cj
6WPQ+abJBMuk28D7V9mbfytPJxJxRjG1n5k5qDTJeH6+M72X+T8IOwB6i2tGBG8s
GWYkS+eMPgXCtaPPcQBVP9jH7Ri+AA7HloZWuUkAtdExz6bn3fPUMd00/z8MYbqI
LNfAd4UidVsNGIudimK/MTjwTWDY2qW/KE7/T9qQhOfLxg5nJnOvFAGKod3U

解决方法

该字符串确实是 ASN.1 数据。您可以在线解码字符串,例如使用 https://lapo.it/asn1js/。解码后的数据包含一些日期字段,所以也许你需要的信息就在那里。您需要一个 ASN.1 架构才能真正了解哪个字段的含义。

为了在你的应用中解码 ASN.1 数据,你需要使用一些 ASN.1 解码库你也可以尝试为 ASN.1 BER(基本编码)编写一个 TLV 解码器(标签长度值)规则),这将帮助您从数据中获取单个字段。这不应该过于复杂来实现。将 ASN.1 BER 数据解码为 TLV 后,您可以进一步仅解码一些对您有用的特定字段。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?