Here you can find the source of getTreeSet(final Object o, final Class
Parameter | Description |
---|---|
o | The input object |
classElement | The class of the element in the set |
T | The type of the element |
public static <T> Set<T> getTreeSet(final Object o, final Class<T> classElement)
//package com.java2s; /*/*from ww w . j a v a2 s . c om*/ * #%L * utils-commons * %% * Copyright (C) 2016 - 2018 Gilles Landel * %% * 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. * #L% */ import java.util.Comparator; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; public class Main { /** * Cast an object into a typed {@link TreeSet}. * * @param o * The input object * @param classElement * The class of the element in the set * @return The casted object * @param <T> * The type of the element */ public static <T> Set<T> getTreeSet(final Object o, final Class<T> classElement) { final Set<T> set = new TreeSet<>(); set(set, o, classElement); return set; } /** * Cast an object into a typed {@link TreeSet}. * * @param o * The input object * @param classElement * The class of the element in the set * @param comparator * The comparator to keep the sort * @return The casted object * @param <T> * The type of the element */ public static <T> SortedSet<T> getTreeSet(final Object o, final Class<T> classElement, final Comparator<T> comparator) { final SortedSet<T> set = new TreeSet<>(comparator); set(set, o, classElement); return set; } /** * Cast the object and feel the set. * * @param set * The output set * @param o * The input object * @param classElement * The typed class */ private static <T> void set(final Set<T> set, final Object o, final Class<T> classElement) { if (o != null && classElement != null && Set.class.isAssignableFrom(o.getClass())) { Set<?> mObj = (Set<?>) o; for (Object obj : mObj) { if (obj != null && classElement.isAssignableFrom(obj.getClass())) { set.add(classElement.cast(obj)); } } } } /** * Get the class of the object ({@code null} safe). * * @param object * The object (required) * @param <T> * The object type * @return The class of the object or null */ @SuppressWarnings("unchecked") public static <T> Class<T> getClass(final T object) { if (object != null) { return (Class<T>) object.getClass(); } return null; } /** * Auto cast an object. * * @param object * The object (required) * @param <T> * The object type * @return The casted object * @throws ClassCastException * on cast failure */ @SuppressWarnings("unchecked") public static <T> T cast(final Object object) { return (T) object; } /** * Cast an object into the specified class (null safe). * * @param o * The input object (required) * @param clazz * The output class (required) * @return The casted object or {@code null} * @param <T> * The type of the output */ public static <T> T cast(final Object o, final Class<T> clazz) { if (o != null && clazz != null && clazz.isAssignableFrom(o.getClass())) { return clazz.cast(o); } return null; } }