ibeMismatch
](../../org/hamcrest/TypeSafeDiagnosingMatcher.html#describeMismatch\(java.lang.Object,
org.hamcrest.Description\)) , [ matches
](../../org/hamcrest/TypeSafeDiagnosingMatcher.html#matches\(java.lang.Object\))
`  
**Methods inherited from class org.hamcrest.[ BaseMatcher
](../../org/hamcrest/BaseMatcher.html "class in org.hamcrest") **  
---  
` [ _dont_implement_Matcher___instead_extend_BaseMatcher_
](../../org/hamcrest/BaseMatcher.html#_dont_implement_Matcher___instead_extend_BaseMatcher_\(\))
, [ toString ](../../org/hamcrest/BaseMatcher.html#toString\(\)) `  
**Methods inherited from class java.lang.Object**  
---  
` clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait,
wait `  
  
**Constructor Detail**  
---  
  
###  FeatureMatcher

    
    
    public **FeatureMatcher**([Matcher](../../org/hamcrest/Matcher.html "interface in org.hamcrest")<? super [U](../../org/hamcrest/FeatureMatcher.html "type parameter in FeatureMatcher")> subMatcher,
                          java.lang.String featureDescription,
                          java.lang.String featureName)

     Constructor 

**Parameters:**      ` subMatcher ` \- The matcher to apply to the feature
` featureDescription ` \- Descriptive text to use in describeTo      `
featureName ` \- Identifying text for mismatch message

**Method Detail**  
---  
  
###  featureValueOf

    
    
    protected abstract [U](../../org/hamcrest/FeatureMatcher.html "type parameter in FeatureMatcher") **featureValueOf**([T](../../org/hamcrest/FeatureMatcher.html "type parameter in FeatureMatcher") actual)

     Implement this to extract the interesting feature. 

    

**Parameters:**      ` actual ` \- the target object  **Returns:**      the
feature to be matched

* * *

###  matchesSafely

    
    
    protected boolean **matchesSafely**([T](../../org/hamcrest/FeatureMatcher.html "type parameter in FeatureMatcher") actual,
                                    [Description](../../org/hamcrest/Description.html "interface in org.hamcrest") mismatch)

     **Description copied from class:` [ TypeSafeDiagnosingMatcher ](../../org/hamcrest/TypeSafeDiagnosingMatcher.html#matchesSafely\(T, org.hamcrest.Description\)) ` **
     Subclasses should implement this. The item will already have been checked for the specific type and will never be null. 

    

**Specified by:**      ` [ matchesSafely
](../../org/hamcrest/TypeSafeDiagnosingMatcher.html#matchesSafely\(T,
org.hamcrest.Description\)) ` in class ` [ TypeSafeDiagnosingMatcher
](../../org/hamcrest/TypeSafeDiagnosingMatcher.html "class in org.hamcrest") <
[ T ](../../org/hamcrest/FeatureMatcher.html "type parameter in
FeatureMatcher") > `

    

* * *

###  describeTo

    
    
    public final void **describeTo**([Description](../../org/hamcrest/Description.html "interface in org.hamcrest") description)

     **Description copied from interface:` [ SelfDescribing ](../../org/hamcrest/SelfDescribing.html#describeTo\(org.hamcrest.Description\)) ` **
     Generates a description of the object. The description may be part of a a description of a larger object of which this is just a component, so it should be worded appropriately. 

    

**Parameters:**      ` description ` \- The description to be built or
appended to.

* * *

|  [ **Overview** ](../../overview-summary.html) |  [ **Package** ](package-summary.html) |  **Class** |  [ **Use** ](class-use/FeatureMatcher.html) |  [ **Tree** ](package-tree.html) |  [ **Deprecated** ](../../deprecated-list.html) |  [ **Index** ](../../index-all.html) |  [ **Help** ](../../help-doc.html)  
---|---|---|---|---|---|---|---  
__  
[ **PREV CLASS** ](../../org/hamcrest/Factory.html "annotation in org.hamcrest") [ **NEXT CLASS** ](../../org/hamcrest/JavaLangMatcherAssert.html "class in org.hamcrest") |  [ **FRAMES** ](../../index.html?org/hamcrest/FeatureMatcher.html) [ **NO FRAMES** ](FeatureMatcher.html) [ **All Classes** ](../../allclasses-noframe.html)  
SUMMARY: NES