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