type
。当使用getInstance()方法获取实现时,必须指定该type
,并且可以通过getType()方法检索。 下列标准类型名称已被定义:
-
PC/SC
- 调用主机平台的PC/SC智能卡堆栈的实现。实现不需要参数,并且在getInstance()调用中接受“null”作为参数。
-
None
-
不提供任何CardTerminals的实现。在不支持其他实现的平台上,getDefaultType()返回
None
,getDefault()返回一个None
TerminalFactory的实例。无法通过调用getInstance()
方法获取此类型的工厂。
注意:强烈建议接受通过getInstance()
方法传递初始化参数的提供程序实现尽可能使用Properties
对象作为基于字符串名称-值对的参数表示。这样可以使应用程序更容易与多个提供程序进行交互,而不是每个提供程序都使用不同的提供程序特定类作为参数。
TerminalFactory利用可扩展的服务提供程序框架。希望添加新实现的服务提供程序应查看TerminalFactorySpi类以获取更多信息。
- 自:
- 1.6
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionstatic TerminalFactory
返回默认的TerminalFactory实例。static String
获取默认的TerminalFactory类型。static TerminalFactory
getInstance
(String type, Object params) 返回使用指定参数初始化的指定类型的TerminalFactory。static TerminalFactory
getInstance
(String type, Object params, String provider) 返回使用指定参数初始化的指定类型的TerminalFactory。static TerminalFactory
getInstance
(String type, Object params, Provider provider) 返回使用指定参数初始化的指定类型的TerminalFactory。返回此TerminalFactory的提供程序。getType()
返回此TerminalFactory的类型。返回一个封装了此工厂支持的终端的新CardTerminals对象。toString()
返回此TerminalFactory的字符串表示形式。
-
Method Details
-
getDefaultType
获取默认的TerminalFactory类型。确定方式如下:当初始化此类时,将检查系统属性
javax.smartcardio.TerminalFactory.DefaultType
。如果已设置,将通过调用getInstance(String,Object)方法并将null
作为params
的值传递来实例化此类型的TerminalFactory。如果调用成功,则该类型将成为默认类型,工厂将成为默认工厂。如果系统属性未设置或由于任何原因getInstance()调用失败,则系统将默认使用特定实现的默认类型和TerminalFactory。
- 返回:
- 默认的TerminalFactory类型
-
getDefault
返回默认的TerminalFactory实例。查看getDefaultType()获取更多信息。始终可以使用默认的TerminalFactory。但是,根据实现方式,它可能不提供任何终端。
- 返回:
- 默认的TerminalFactory
-
getInstance
public static TerminalFactory getInstance(String type, Object params) throws NoSuchAlgorithmException 返回使用指定参数初始化的指定类型的TerminalFactory。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回封装了支持指定类型的第一个提供程序的TerminalFactorySpi实现的新TerminalFactory对象。
请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。
TerminalFactory
使用指定的参数对象进行初始化。所需参数的类型可能因不同类型的TerminalFactory
而异。- 实现注意:
-
JDK参考实现另外使用
jdk.security.provider.preferred
Security
属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()
返回的提供程序顺序不同。 - 参数:
-
type
- 请求的TerminalFactory类型 -
params
- 传递给TerminalFactorySpi实现的参数,如果不需要参数,则为null - 返回:
- 指定类型的TerminalFactory
- 抛出:
-
NullPointerException
- 如果type为null -
NoSuchAlgorithmException
- 如果没有提供者支持指定类型的TerminalFactorySpi
-
getInstance
public static TerminalFactory getInstance(String type, Object params, String provider) throws NoSuchAlgorithmException, NoSuchProviderException 返回使用指定参数初始化的指定类型的TerminalFactory。返回封装了来自指定提供程序的TerminalFactorySpi实现的新TerminalFactory对象。指定的提供程序必须在安全提供程序列表中注册。
请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。
TerminalFactory
使用指定的参数对象进行初始化。所需参数的类型可能因不同类型的TerminalFactory
而异。- 参数:
-
type
- 请求的TerminalFactory类型 -
params
- 传递给TerminalFactorySpi实现的参数,如果不需要参数,则为null -
provider
- 提供程序的名称 - 返回:
- 指定类型的TerminalFactory
- 抛出:
-
NullPointerException
- 如果type为null -
IllegalArgumentException
- 如果provider为null或为空字符串 -
NoSuchAlgorithmException
- 如果指定提供程序不提供指定类型的TerminalFactorySpi实现 -
NoSuchAlgorithmException
- 如果找不到指定类型的TerminalFactory -
NoSuchProviderException
- 如果找不到指定提供程序
-
getInstance
public static TerminalFactory getInstance(String type, Object params, Provider provider) throws NoSuchAlgorithmException 返回使用指定参数初始化的指定类型的TerminalFactory。返回封装了来自指定提供程序对象的TerminalFactorySpi实现的新TerminalFactory对象。请注意,指定的提供程序对象不必在提供程序列表中注册。
TerminalFactory
使用指定的参数对象进行初始化。所需参数的类型可能因不同类型的TerminalFactory
而异。- 参数:
-
type
- 请求的TerminalFactory类型 -
params
- 传递给TerminalFactorySpi实现的参数,如果不需要参数,则为null -
provider
- 提供程序 - 返回:
- 指定类型的TerminalFactory
- 抛出:
-
NullPointerException
- 如果type为null -
IllegalArgumentException
- 如果provider为null -
NoSuchAlgorithmException
- 如果指定提供程序不提供指定类型的TerminalFactorySpi实现
-
getProvider
返回此TerminalFactory的提供程序。- 返回:
- 此TerminalFactory的提供程序。
-
getType
返回此TerminalFactory的类型。这是调用返回此对象的getInstance()方法中指定的值。- 返回:
- 此TerminalFactory的类型
-
terminals
返回一个封装了此工厂支持的终端的新CardTerminals对象。查看CardTerminals类的类注释,了解如何共享和重用返回的对象。- 返回:
- 一个封装了此工厂支持的终端的新CardTerminals对象。
-
toString
返回此TerminalFactory的字符串表示形式。
-