com.landawn.abacus.util.Clazz Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of abacus-common Show documentation
Show all versions of abacus-common Show documentation
A general programming library in Java/Android. It's easy to learn and simple to use with concise and powerful APIs.
/*
* Copyright (C) 2018 HaiYang Li
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.landawn.abacus.util;
import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Deque;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.NavigableMap;
import java.util.NavigableSet;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.LinkedBlockingQueue;
/**
* It's designed to provide a convenient way to parameterized the generic type (e.g. {@code List.class}).
*
* But the returned Class by all the methods doesn't have the actual parameterized type informations. For example:
*
*
* List<String> clazz = Clazz.ofList(String.class);
* // clazz doesn't have the actual type parameters information.
* // you won't be able to get type parameter {@code String} by: cls.getTypeParameters();
* // To save the real type parameters: you need to either:
* Type<List<String>> type = Type.of("List<String>"); // or Type.ofList(String.class)
*
* // Or
* Type<List<String>> type = new TypeReference<List<String>>() {}.type();
*
*
*
*
* @author Haiyang Li
* @since 1.2
*/
public final class Clazz {
@SuppressWarnings("rawtypes")
public static final Class