## com.puppycrawl.tools.checkstyle.checks.coding
Class UnnecessaryParenthesesCheck

    java.lang.Object
      com.puppycrawl.tools.checkstyle.api.AutomaticBean
          com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
              com.puppycrawl.tools.checkstyle.api.Check
                  com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck

All Implemented Interfaces:
  Configurable, Contextualizable

    public class UnnecessaryParenthesesCheck

extends Check

Checks if unnecessary parentheses are used in a statement or expression. The check will flag the following with warnings:

         return (x);          // parens around identifier
         return (x + 1);      // parens around return value
         int x = (y / 2 + 1); // parens around assignment rhs
         for (int i = (0); i < 10; i++) {  // parens around literal
         t -= (z + 1);        // parens around assignment rhs

The check is not "type aware", that is to say, it can't tell if parentheses are unnecessary based on the types in an expression. It also doesn't know about operator precedence and associatvity; therefore it won't catch something like

         int x = (a + b) + c;

In the above case, given that a, b, and c are all `int` variables, the parentheses around `a + b` are not needed.

Author:
  Eric Roe

Constructor Summary
`UnnecessaryParenthesesCheck()`

Method Summary
`int[]` `getDefaultTokens()` Returns the default token a check is interested in.
`void` `leaveToken(DetailAST aAST)` Called after all the child nodes have been process.
`void` `visitToken(DetailAST aAST)` Called to process a token.

Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check
`beginTree, destroy, finishTree, getAcceptableTokens, getClassLoader, getFileContents, getLines, getRequiredTokens, getTabWidth, getTokenNames, init, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens`

Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
`getId, getMessageBundle, getSeverity, getSeverityLevel, log, log, log, log, log, log, log, log, log, setId, setSeverity`

Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
`configure, contextualize, finishLocalSetup, getConfiguration, setupChild`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### UnnecessaryParenthesesCheck

    public UnnecessaryParenthesesCheck()

Method Detail

### getDefaultTokens

    public int[] getDefaultTokens()

  Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.

  Specified by:
    `getDefaultTokens` in class `Check`
  Returns:
    the default tokens
  See Also:
    `TokenTypes`

### visitToken

    public void visitToken(DetailAST aAST)

  Called to process a token.

  Overrides:
    `visitToken` in class `Check`
  Parameters:
    `aAST` - the token to process

### leaveToken

    public void leaveToken(DetailAST aAST)

  Called after all the child nodes have been process.

  Overrides:
    `leaveToken` in class `Check`
  Parameters:
    `aAST` - the token leaving

Back to the Checkstyle Home Page