SNIMatcher (Java Platform SE 8 )
Keywords: javax.net.ssl.SNIMatcher class
Date: 2026-03-16

compact1, compact2, compact3
javax.net.ssl

## Class SNIMatcher

- java.lang.Object
- - javax.net.ssl.SNIMatcher

-     public abstract class SNIMatcher
      extends Object

  Instances of this class represent a matcher that performs match operations on an `SNIServerName` instance.

  Servers can use Server Name Indication (SNI) information to decide if specific `SSLSocket` or `SSLEngine` instances should accept a connection. For example, when multiple "virtual" or "name-based" servers are hosted on a single underlying network address, the server application can use SNI information to determine whether this server is the exact server that the client wants to access. Instances of this class can be used by a server to verify the acceptable server names of a particular type, such as host names.

  `SNIMatcher` objects are immutable. Subclasses should not provide methods that can change the state of an instance once it has been created.

  Since:
    1.8
  See Also:
    `SNIServerName`, `SNIHostName`, `SSLParameters.getSNIMatchers()`, `SSLParameters.setSNIMatchers(Collection)`

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SNIMatcher(int type)` Creates an `SNIMatcher` using the specified server name type.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getType()` Returns the server name type of this `SNIMatcher` object.
    `abstract boolean` | `matches(SNIServerName serverName)` Attempts to match the given `SNIServerName`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SNIMatcher

          protected SNIMatcher(int type)

      Creates an `SNIMatcher` using the specified server name type.
      Parameters:
        `type` - the type of the server name that this matcher performs on
      Throws:
        `IllegalArgumentException` - if `type` is not in the range of 0 to 255, inclusive.

  - ### Method Detail

    - #### getType

          public final int getType()

      Returns the server name type of this `SNIMatcher` object.
      Returns:
        the server name type of this `SNIMatcher` object.
      See Also:
        `SNIServerName`

    - #### matches

          public abstract boolean matches(SNIServerName serverName)

      Attempts to match the given `SNIServerName`.
      Parameters:
        `serverName` - the `SNIServerName` instance on which this matcher performs match operations
      Returns:
        `true` if, and only if, the matcher matches the given `serverName`
      Throws:
        `NullPointerException` - if `serverName` is `null`
        `IllegalArgumentException` - if `serverName` is not of the given server name type of this matcher
      See Also:
        `SNIServerName`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.