<!DOCTYPE html>


















































<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
<title>

  Key


| Guice

</title>
<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="../../../../assets/customizations.css" rel="stylesheet" type="text/css" />
<script src="../../../../assets/search_autocomplete.js" type="text/javascript"></script>
<script src="../../../../assets/jquery-resizable.min.js" type="text/javascript"></script>
<script src="../../../../assets/android-developer-docs.js" type="text/javascript"></script>
<script src="../../../../assets/prettify.js" type="text/javascript"></script>
<script type="text/javascript">
  setToRoot("../../../../");
</script>
<script src="../../../../assets/android-developer-reference.js" type="text/javascript"></script>
<script src="../../../../assets/navtree_data.js" type="text/javascript"></script>
<script src="../../../../assets/customizations.js" type="text/javascript"></script>
<noscript>
  <style type="text/css">
    html,body{overflow:auto;}
    #body-content{position:relative; top:0;}
    #doc-content{overflow:visible;border-left:3px solid #666;}
    #side-nav{padding:0;}
    #side-nav .toggle-list ul {display:block;}
    #resize-packages-nav{border-bottom:3px solid #666;}
  </style>
</noscript>
</head>

<body class="Guice_1.0">

<div id="header">
    <div id="headerLeft">
    
      <span id="masthead-title">Guice</span>
    
    </div>
    <div id="headerRight">
      
  <div id="search" >
      <div id="searchForm">
          <form accept-charset="utf-8" class="gsc-search-box" 
                onsubmit="return submit_search()">
            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
                <tr>
                  <td class="gsc-input">
                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
                      title="search developer docs" name="q"
                      value="search developer docs"
                      onFocus="search_focus_changed(this, true)"
                      onBlur="search_focus_changed(this, false)"
                      onkeydown="return search_changed(event, true, '../../../../')"
                      onkeyup="return search_changed(event, false, '../../../../')" />
                  <div id="search_filtered_div" class="no-display">
                      <table id="search_filtered" cellspacing=0>
                      </table>
                  </div>
                  </td>
                  <td class="gsc-search-button">
                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
                  </td>
                  <td class="gsc-clear-button">
                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
                  </td>
                </tr></tbody>
              </table>
          </form>
      </div><!-- searchForm -->
  </div><!-- search -->
      
        
  <div id="api-level-toggle">
    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
    <select id="apiLevelSelector">
      <!-- option elements added by buildApiLevelSelector() -->
    </select>
  </div>
  <script>
   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0' ];
    buildApiLevelSelector();
    addLoadEvent(changeApiLevel);
  </script>


      
    </div>
</div><!-- header -->


  <div class="g-section g-tpl-240" id="body-content">
    <div class="g-unit g-first side-nav-resizable" id="side-nav">
      <div id="swapper">
        <div id="nav-panels">
          <div id="resize-packages-nav">
            <div id="packages-nav">
              <div id="index-links"><nobr>
                <a href="../../../../reference/packages.html"  >Package Index</a> | 
                <a href="../../../../reference/classes.html" >Class Index</a></nobr>
              </div>
              <ul>
                
    <li class="selected api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/package-summary.html">com.google.inject</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../reference/com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../reference/com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../reference/com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../reference/com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../reference/com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
              </ul><br/>
            </div> <!-- end packages -->
          </div> <!-- end resize-packages -->
          <div id="classes-nav">
            <ul>
              
    <li><h2>Interfaces</h2>
      <ul>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Binder.html">Binder</a></li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Injector.html">Injector</a></li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../reference/com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Module.html">Module</a></li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../reference/com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Scope.html">Scope</a></li>
      </ul>
    </li>
              
    <li><h2>Classes</h2>
      <ul>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/AbstractModule.html">AbstractModule</a></li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Guice.html">Guice</a></li>
          <li class="selected api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../reference/com/google/inject/PrivateModule.html">PrivateModule</a></li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Scopes.html">Scopes</a></li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
      </ul>
    </li>
              
    <li><h2>Enums</h2>
      <ul>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/Stage.html">Stage</a></li>
      </ul>
    </li>
              
    <li><h2>Exceptions</h2>
      <ul>
          <li class="api apilevel-Guice_2.0"><a href="../../../../reference/com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
          <li class="api apilevel-Guice_1.0"><a href="../../../../reference/com/google/inject/CreationException.html">CreationException</a></li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../reference/com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../reference/com/google/inject/ProvisionException.html">ProvisionException</a></li>
      </ul>
    </li>
              
            </ul><br/>
          </div><!-- end classes -->
        </div><!-- end nav-panels -->
        <div id="nav-tree" style="display:none">
          <div id="index-links"><nobr>
            <a href="../../../../reference/packages.html"  >Package Index</a> | 
            <a href="../../../../reference/classes.html" >Class Index</a></nobr>
          </div>
        </div><!-- end nav-tree -->
      </div><!-- end swapper -->
    </div> <!-- end side-nav -->
    <script>
      if (!isMobile) {
        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
        chooseDefaultNav();
        if ($("#nav-tree").is(':visible')) {
          init_default_navtree("../../../../");
        } else {
          addLoadEvent(function() {
            scrollIntoView("packages-nav");
            scrollIntoView("classes-nav");
          });
        }
        $("#swapper").css({borderBottom:"2px solid #aaa"});
      } else {
        swapNav(); // tree view should be used on mobile
      }
    </script>



<div class="g-unit" id="doc-content">

<div id="api-info-block">



  
   
  
  
  
  


<div class="sum-details-links">

Summary:










  <a href="#proctors">Protected Ctors</a>
  


  &#124; <a href="#pubmethods">Methods</a>
  



  &#124; <a href="#inhmethods">Inherited Methods</a>

&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>

</div><!-- end sum-details-links -->
<div class="api-level">
  

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>


  
  

</div>
</div><!-- end api-info-block -->


<!-- ======== START OF CLASS DATA ======== -->

<div id="jd-header">
    public
     
     
    
    class
<h1>Key</h1>



  
    extends <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">Object</a><br/>
  
  
  

  
  
  


</div><!-- end header -->

<div id="naMessage"></div>

<div id="jd-content" class="api apilevel-Guice_1.0">
<table class="jd-inheritance-table">


    <tr>
         	
        <td colspan="2" class="jd-inheritance-class-cell"><a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">java.lang.Object</a></td>
    </tr>
    

    <tr>
        
            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
         	
        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Key&lt;T&gt;</td>
    </tr>
    

</table>







<div class="jd-descr">


<h2>Class Overview</h2>
<p>Binding key consisting of an injection type and an optional annotation.
 Matches the type and annotation at a point of injection.

 <p>For example, <code>Key.get(Service.class, Transactional.class)</code> will
 match:

 <pre>
   @Inject
   public void setService(@Transactional Service service) {
     ...
   }
 </pre>

 <p><code>Key</code> supports generic types via subclassing just like <code><a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a></code>.

 <p>Keys do not differentiate between primitive types (int, char, etc.) and
 their correpsonding wrapper types (Integer, Character, etc.). Primitive
 types will be replaced with their wrapper types when keys are created.</p>





</div><!-- jd-descr -->
















<div class="jd-descr">


<h2>Summary</h2>

























<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>



	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            </nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#Key(java.lang.Class<? extends java.lang.annotation.Annotation>)">Key</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</nobr>
        
        <div class="jd-descrdiv">Constructs a new key.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            </nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#Key(java.lang.annotation.Annotation)">Key</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</nobr>
        
        <div class="jd-descrdiv">Constructs a new key.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            </nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#Key()">Key</a></span>()</nobr>
        
        <div class="jd-descrdiv">Constructs a new key.</div>
  
  </td></tr>



</table>




<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>



	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            boolean</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#equals(java.lang.Object)">equals</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">Object</a> o)</nobr>
        
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(java.lang.reflect.Type, java.lang.annotation.Annotation)">get</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/reflect/Type.html">Type</a> type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            &lt;T&gt;
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(<a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            &lt;T&gt;
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;T&gt; type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            &lt;T&gt;
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(java.lang.Class<T>, java.lang.annotation.Annotation)">get</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;T&gt; type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            &lt;T&gt;
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>)">get</a></span>(<a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            &lt;T&gt;
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(java.lang.Class<T>)">get</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;T&gt; type)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(java.lang.reflect.Type, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/reflect/Type.html">Type</a> type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            &lt;T&gt;
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)">get</a></span>(<a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            
            static
            
            <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#get(java.lang.reflect.Type)">get</a></span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/reflect/Type.html">Type</a> type)</nobr>
        
        <div class="jd-descrdiv">Gets a key for an injection type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a></nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#getAnnotation()">getAnnotation</a></span>()</nobr>
        
        <div class="jd-descrdiv">Gets the annotation.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#getAnnotationType()">getAnnotationType</a></span>()</nobr>
        
        <div class="jd-descrdiv">Gets the annotation type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_1.0" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            <a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#getTypeLiteral()">getTypeLiteral</a></span>()</nobr>
        
        <div class="jd-descrdiv">Gets the key type.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            int</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#hashCode()">hashCode</a></span>()</nobr>
        
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/String.html">String</a></nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../reference/com/google/inject/Key.html#toString()">toString</a></span>()</nobr>
        
  </td></tr>



</table>







<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
  <div style="clear:left;">Inherited Methods</div></th></tr>


<tr class="api apilevel-" >
<td colspan="12">
  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
          ><img id="inherited-methods-java.lang.Object-trigger"
          src="../../../../assets/images/triangle-closed.png"
          class="jd-expando-trigger-img" /></a>
From class

  <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">java.lang.Object</a>

<div id="inherited-methods-java.lang.Object">
  <div id="inherited-methods-java.lang.Object-list"
        class="jd-inheritedlinks">
  </div>
  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
    <table class="jd-sumtable-expando">
    


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">Object</a></nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">clone</span>()</nobr>
        
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            boolean</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">equals</span>(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">Object</a> arg0)</nobr>
        
  </td></tr>


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">finalize</span>()</nobr>
        
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">getClass</span>()</nobr>
        
  </td></tr>


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            int</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">hashCode</span>()</nobr>
        
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">notify</span>()</nobr>
        
  </td></tr>


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">notifyAll</span>()</nobr>
        
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            
            
            
            <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/String.html">String</a></nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">toString</span>()</nobr>
        
  </td></tr>


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">wait</span>()</nobr>
        
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
        
  </td></tr>


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            
            
            final
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad">wait</span>(long arg0)</nobr>
        
  </td></tr>


</table>
  </div>
</div>
</td></tr>


</table>


</div><!-- jd-descr (summary) -->

<!-- Details -->








<!-- XML Attributes -->


<!-- Enum Values -->


<!-- Constants -->


<!-- Fields -->


<!-- Public ctors -->



<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->

<h2>Protected Constructors</h2>



<A NAME="Key(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        protected 
         
         
         
         
        
      </span>
      <span class="sympad">Key</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.

 <p>Clients create an empty anonymous subclass. Doing so embeds the type
 parameter in the anonymous class's type hierarchy so we can reconstitute it
 at runtime despite erasure.

 <p>Example usage for a binding of type <code>Foo</code> annotated with
 <code>@Bar</code>:

 <p><code>new Key&lt;Foo&gt;(Bar.class) {</code>}.
</p></div>

    </div>
</div>


<A NAME="Key(java.lang.annotation.Annotation)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        protected 
         
         
         
         
        
      </span>
      <span class="sympad">Key</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.

 <p>Clients create an empty anonymous subclass. Doing so embeds the type
 parameter in the anonymous class's type hierarchy so we can reconstitute it
 at runtime despite erasure.

 <p>Example usage for a binding of type <code>Foo</code> annotated with
 <code>@Bar</code>:

 <p><code>new Key&lt;Foo&gt;(new Bar()) {</code>}.
</p></div>

    </div>
</div>


<A NAME="Key()"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        protected 
         
         
         
         
        
      </span>
      <span class="sympad">Key</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.

 <p>Clients create an empty anonymous subclass. Doing so embeds the type
 parameter in the anonymous class's type hierarchy so we can reconstitute it
 at runtime despite erasure.

 <p>Example usage for a binding of type <code>Foo</code>:

 <p><code>new Key&lt;Foo&gt;() {</code>}.
</p></div>

    </div>
</div>





<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->

<h2>Public Methods</h2>



<A NAME="equals(java.lang.Object)"></A>

<div class="jd-details api apilevel-Guice_2.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
        final 
         
         
        boolean
      </span>
      <span class="sympad">equals</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Object.html">Object</a> o)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p></p></div>

    </div>
</div>


<A NAME="get(java.lang.reflect.Type, java.lang.annotation.Annotation)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;?&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/reflect/Type.html">Type</a> type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
</p></div>

    </div>
</div>


<A NAME="get(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
</p></div>

    </div>
</div>


<A NAME="get(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;T&gt; type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
</p></div>

    </div>
</div>


<A NAME="get(java.lang.Class<T>, java.lang.annotation.Annotation)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;T&gt; type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
</p></div>

    </div>
</div>


<A NAME="get(com.google.inject.TypeLiteral<T>)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
</p></div>

    </div>
</div>


<A NAME="get(java.lang.Class<T>)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;T&gt; type)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
</p></div>

    </div>
</div>


<A NAME="get(java.lang.reflect.Type, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;?&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/reflect/Type.html">Type</a> type, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationType)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
</p></div>

    </div>
</div>


<A NAME="get(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;T&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a> annotation)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
</p></div>

    </div>
</div>


<A NAME="get(java.lang.reflect.Type)"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
        static 
         
         
         
        <a href="../../../../reference/com/google/inject/Key.html">Key</a>&lt;?&gt;
      </span>
      <span class="sympad">get</span>
      <span class="normal">(<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/reflect/Type.html">Type</a> type)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
</p></div>

    </div>
</div>


<A NAME="getAnnotation()"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
        final 
         
         
        <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>
      </span>
      <span class="sympad">getAnnotation</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets the annotation.
</p></div>

    </div>
</div>


<A NAME="getAnnotationType()"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
        final 
         
         
        <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/Class.html">Class</a>&lt;?&nbsp;extends&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/annotation/Annotation.html">Annotation</a>&gt;
      </span>
      <span class="sympad">getAnnotationType</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets the annotation type.
</p></div>

    </div>
</div>


<A NAME="getTypeLiteral()"></A>

<div class="jd-details api apilevel-Guice_1.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
        final 
         
         
        <a href="../../../../reference/com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
      </span>
      <span class="sympad">getTypeLiteral</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Gets the key type.
</p></div>

    </div>
</div>


<A NAME="hashCode()"></A>

<div class="jd-details api apilevel-Guice_2.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
        final 
         
         
        int
      </span>
      <span class="sympad">hashCode</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p></p></div>

    </div>
</div>


<A NAME="toString()"></A>

<div class="jd-details api apilevel-Guice_2.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
        final 
         
         
        <a href="http://download.oracle.com/javase/6/docs/api/index.html?java/lang/String.html">String</a>
      </span>
      <span class="sympad">toString</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p></p></div>

    </div>
</div>





<!-- ========= METHOD DETAIL ======== -->



<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>

<div id="footer">

</div> <!-- end footer -->

</div> <!-- jd-content -->

</div><!-- end doc-content -->

</div> <!-- end body-content --> 

<script type="text/javascript">
init(); /* initialize android-developer-docs.js */
</script>

</body>
</html>
