Java tutorial
/* * * 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 org.dbunitng.util; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import com.google.common.base.Strings; /** * ? * * @author jyukutyo * */ public class PropertyUtil { /** * Java Beans????? * * <pre> * decapitalizePropertyName("FirstName") = "firstName" * decapitalizePropertyName("AName") = "AName" * </pre> * * @param name * @return ?? */ public static String decapitalizePropertyName(String name) { if (Strings.isNullOrEmpty(name)) { return name; } if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) && Character.isUpperCase(name.charAt(0))) { return name; } char chars[] = name.toCharArray(); chars[0] = Character.toLowerCase(chars[0]); return new String(chars); } /** * ?? * * @param field * @return ?true */ public static boolean isInstanceField(Field field) { int modifier = field.getModifiers(); return !Modifier.isStatic(modifier) && !Modifier.isFinal(modifier); } /** * ?? * * @param field * @return ?true */ public static boolean isPublicField(Field field) { int modifier = field.getModifiers(); return Modifier.isPublic(modifier); } }