Home | History | Annotate | Download | only in lang
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 package java.lang;
     19 
     20 import java.lang.reflect.Method;
     21 import libcore.util.EmptyArray;
     22 
     23 /**
     24  * Placeholder class for the Java keyword {@code void}.
     25  *
     26  * @since 1.1
     27  */
     28 public final class Void {
     29 
     30     /**
     31      * The {@link Class} object that represents the primitive type {@code void}.
     32      */
     33     public static final Class<Void> TYPE = lookupType();
     34     // Note: Void.TYPE can't be set to "void.class", since *that* is
     35     // defined to be "java.lang.Void.TYPE";
     36 
     37     @SuppressWarnings("unchecked")
     38     private static Class<Void> lookupType() {
     39         try {
     40             Method method = Runnable.class.getMethod("run", EmptyArray.CLASS);
     41             return (Class<Void>) method.getReturnType();
     42         } catch (Exception e) {
     43             throw new AssertionError(e);
     44         }
     45     }
     46 
     47     private Void() {
     48     }
     49 }
     50