01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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:
22: /**
23: * This class is a placeholder class for the Java keyword <code>void</code>
24: * @since 1.1
25: */
26: public final class Void extends Object {
27:
28: /**
29: * The {@link Class} instance that represents primitive type
30: * <code>void</code>.
31: */
32: public static final Class<Void> TYPE = lookupType();
33:
34: // Note: This 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: Class<?> voidType = null;
40: try {
41: Method method = Runnable.class.getMethod(
42: "run", new Class[0]); //$NON-NLS-1$
43: voidType = method.getReturnType();
44: } catch (Exception e) {
45: throw new RuntimeException(e);
46: }
47: return (Class<Void>) voidType;
48: }
49:
50: private Void() {
51: }
52: }
|