Java 类java.lang.reflect.Array 实例源码
项目:OpenJSharp
文件:MLetObjectInputStream.java
/**
* Use the given ClassLoader rather than using the system class
*/
@Override
protected Class<?> resolveClass(ObjectStreamClass objectstreamclass)
throws IOException, ClassNotFoundException {
String s = objectstreamclass.getName();
if (s.startsWith("[")) {
int i;
for (i = 1; s.charAt(i) == '['; i++);
Class<?> class1;
if (s.charAt(i) == 'L') {
class1 = loader.loadClass(s.substring(i + 1, s.length() - 1));
} else {
if (s.length() != i + 1)
throw new ClassNotFoundException(s);
class1 = primitiveType(s.charAt(i));
}
int ai[] = new int[i];
for (int j = 0; j < i; j++)
ai[j] = 0;
return Array.newInstance(class1, ai).getClass();
} else {
return loader.loadClass(s);
}
}
项目:RxJava3-preview
文件:BehaviorProcessor.java
/**
* Returns a typed array containing a snapshot of all values of the Subject.
* <p>The method follows the conventions of Collection.toArray by setting the array element
* after the last value to null (if the capacity permits).
* <p>The method is thread-safe.
* @param array the target array to copy values into if it fits
* @return the given array if the values fit into it or a new array containing all values
*/
@SuppressWarnings("unchecked")
public T[] getValues(T[] array) {
Object o = value.get();
if (o == null || NotificationLite.isComplete(o) || NotificationLite.isError(o)) {
if (array.length != 0) {
array[0] = null;
}
return array;
}
T v = NotificationLite.getValue(o);
if (array.length != 0) {
array[0] = v;
if (array.length != 1) {
array[1] = null;
}
} else {
array = (T[])Array.newInstance(array.getClass().getComponentType(), 1);
array[0] = v;
}
return array;
}
项目:spring-data-ebean
文件:StringQuery.java
@Override
public Object prepare(Object value) {
if (!ObjectUtils.isArray(value)) {
return value;
}
int length = Array.getLength(value);
Collection<Object> result = new ArrayList<Object>(length);
for (int i = 0; i < length; i++) {
result.add(Array.get(value, i));
}
return result;
}
项目:pandionj
文件:MatrixWidget.java
private void update() {
removeAll();
valid = model.isMatrix();
if(valid) {
Object[] array = (Object[]) model.getValues();
for(Object line : array) {
int len = Array.getLength(line);
for(int i = 0; i < len; i++) {
Object e = Array.get(line, i);
Label label = new Label(e.toString()); // TODO array deepToString
label.setForegroundColor(ColorConstants.black);
add(label);
}
}
}
getLayoutManager().layout(this);
repaint();
}
项目:boohee_v5.6
文件:ArrayTypeAdapter.java
public Object read(JsonReader in) throws IOException {
if (in.peek() == JsonToken.NULL) {
in.nextNull();
return null;
}
List<E> list = new ArrayList();
in.beginArray();
while (in.hasNext()) {
list.add(this.componentTypeAdapter.read(in));
}
in.endArray();
Object array = Array.newInstance(this.componentType, list.size());
for (int i = 0; i < list.size(); i++) {
Array.set(array, i, list.get(i));
}
return array;
}
项目:X4J
文件:ObjectUtils.java
/**
* Determine whether the given object is empty.
* <p>This method supports the following object types.
* <ul>
* <li>{@code Optional}: considered empty if {@link Optional#empty()}</li>
* <li>{@code Array}: considered empty if its length is zero</li>
* <li>{@link CharSequence}: considered empty if its length is zero</li>
* <li>{@link Collection}: delegates to {@link Collection#isEmpty()}</li>
* <li>{@link Map}: delegates to {@link Map#isEmpty()}</li>
* </ul>
* <p>If the given object is non-null and not one of the aforementioned
* supported types, this method returns {@code false}.
* @param obj the object to check
* @return {@code true} if the object is {@code null} or <em>empty</em>
* @since 4.2
* @see Optional#isPresent()
* @see ObjectUtils#isEmpty(Object[])
* @see StringUtils#hasLength(CharSequence)
* @see StringUtils#isEmpty(Object)
* @see CollectionUtils#isEmpty(java.util.Collection)
* @see CollectionUtils#isEmpty(java.util.Map)
*/
@SuppressWarnings("rawtypes")
public static boolean isEmpty( Object obj) {
if (obj == null) {
return true;
}
if (obj instanceof Optional) {
return !((Optional) obj).isPresent();
}
if (obj.getClass().isArray()) {
return Array.getLength(obj) == 0;
}
if (obj instanceof CharSequence) {
return ((CharSequence) obj).length() == 0;
}
if (obj instanceof Collection) {
return ((Collection) obj).isEmpty();
}
if (obj instanceof Map) {
return ((Map) obj).isEmpty();
}
// else
return false;
}
项目:NotifyTools
文件:ConvertUtilsBean.java
/**
* Convert an array of specified values to an array of objects of the
* specified class (if possible). If the specified Java class is itself
* an array class, this class will be the type of the returned value.
* Otherwise, an array will be constructed whose component type is the
* specified class.
*
* @param values Array of values to be converted
* @param clazz Java array or element class to be converted to (must not be null)
* @return The converted value
*
* @throws ConversionException if thrown by an underlying Converter
*/
public Object convert(final String[] values, final Class<?> clazz) {
Class<?> type = clazz;
if (clazz.isArray()) {
type = clazz.getComponentType();
}
if (log.isDebugEnabled()) {
log.debug("Convert String[" + values.length + "] to class '" +
type.getName() + "[]'");
}
Converter converter = lookup(type);
if (converter == null) {
converter = lookup(String.class);
}
if (log.isTraceEnabled()) {
log.trace(" Using converter " + converter);
}
final Object array = Array.newInstance(type, values.length);
for (int i = 0; i < values.length; i++) {
Array.set(array, i, converter.convert(type, values[i]));
}
return (array);
}
项目:PackagePlugin
文件:HashCodeUtil.java
/**
* <code>aObject</code> is a possibly-null object field, and possibly an
* array.
*
* If <code>aObject</code> is an array, then each element may be a
* primitive or a possibly-null object.
*/
public static int hash(int aSeed, Object aObject) {
int result = aSeed;
if (aObject == null) {
result = hash(result, 0);
} else if (!isArray(aObject)) {
result = hash(result, aObject.hashCode());
} else {
int length = Array.getLength(aObject);
for (int idx = 0; idx < length; ++idx) {
Object item = Array.get(aObject, idx);
//recursive call!
result = hash(result, item);
}
}
return result;
}
项目:monarch
文件:CollectionConverter.java
final Object toNonNullOpenValue(Object value) throws OpenDataException {
final Collection valueCollection = (Collection) value;
if (valueCollection instanceof SortedSet) {
Comparator comparator = ((SortedSet) valueCollection).comparator();
if (comparator != null) {
final String msg = "Cannot convert SortedSet with non-null comparator: " + comparator;
throw openDataException(msg, new IllegalArgumentException(msg));
}
}
final Object[] openArray =
(Object[]) Array.newInstance(getOpenClass().getComponentType(), valueCollection.size());
int i = 0;
for (Object o : valueCollection)
openArray[i++] = elementConverter.toOpenValue(o);
return openArray;
}
项目:incubator-netbeans
文件:FSWrapperTest.java
private static void checkValue(Object o1, Object o2) throws Exception {
assertEquals(o1.getClass().isAnnotation(), o2.getClass().isAnnotation());
if (o1.getClass().isAnnotation()) {
assertEquals(((Annotation) o1).annotationType(), ((Annotation) o2).annotationType());
} else {
assertEquals(o1.getClass(), o2.getClass());
}
if (o1.getClass().isArray()) {
assertEquals(Array.getLength(o1), Array.getLength(o2));
for (int c = 0; c < Array.getLength(o1); c++) {
checkValue(Array.get(o1, c), Array.get(o2, c));
}
} else if (o1.getClass().isAnnotation()) {
checkAnnotation((Annotation) o1, (Annotation) o2);
} else {
assertEquals(o1, o2);
}
}
项目:garlicts
文件:CollectionUtil.java
/**
* 检查指定的集合/数组/枚举为空
* <p>
* 此方法可以处理如下对象:
* <ul>
* <li>Collection
* <li>Map
* <li>Array
* <li>Enumeration
* </ul>
* <p>
*
* @param object
* @return true
* @throws IllegalArgumentException
* @since 1.0
*/
public static boolean isEmpty(final Object object) {
if (object == null) {
return true;
} else if (object instanceof Collection<?>) {
return ((Collection<?>) object).isEmpty();
} else if (object instanceof Map<?, ?>) {
return ((Map<?, ?>) object).isEmpty();
} else if (object instanceof Object[]) {
return ((Object[]) object).length == 0;
} else if (object instanceof Iterator<?>) {
return ((Iterator<?>) object).hasNext() == false;
} else if (object instanceof Enumeration<?>) {
return ((Enumeration<?>) object).hasMoreElements() == false;
} else {
try {
return Array.getLength(object) == 0;
} catch (final IllegalArgumentException ex) {
throw new IllegalArgumentException("Unsupported object type: " + object.getClass().getName());
}
}
}
项目:uroborosql
文件:ParenBindVariableNode.java
/**
* 配列の値をIN句として加工してバインドする
*
* @param transformContext transformコンテキスト
* @param values バインドする値の配列
*/
private void bindArray(final TransformContext transformContext, final Object values) {
int length = Array.getLength(values);
if (length == 0) {
throw new ParameterNotFoundRuntimeException("Parameter is not set. [" + expression + "]");
}
transformContext.addSqlPart("(?");
transformContext.addBindVariable(Array.get(values, 0));
for (int i = 1; i < length; i++) {
transformContext.addSqlPart(", ?");
transformContext.addBindVariable(Array.get(values, i));
}
transformContext.addSqlPart(")/*").addSqlPart(expression).addSqlPart("*/");
transformContext.addBindName(expression);
}
项目:OpenJSharp
文件:BeanLinker.java
@SuppressWarnings("unused")
private static final boolean rangeCheck(final Object array, final Object index) {
if(!(index instanceof Number)) {
return false;
}
final Number n = (Number)index;
final int intIndex = n.intValue();
final double doubleValue = n.doubleValue();
if(intIndex != doubleValue && !Double.isInfinite(doubleValue)) { // let infinite trigger IOOBE
return false;
}
if(0 <= intIndex && intIndex < Array.getLength(array)) {
return true;
}
throw new ArrayIndexOutOfBoundsException("Array index out of range: " + n);
}
项目:GitHub
文件:DiskLruCache.java
@SuppressWarnings("unchecked")
private static <T> T[] copyOfRange(T[] original, int start, int end) {
final int originalLength = original.length; // For exception priority compatibility.
if (start > end) {
throw new IllegalArgumentException();
}
if (start < 0 || start > originalLength) {
throw new ArrayIndexOutOfBoundsException();
}
final int resultLength = end - start;
final int copyLength = Math.min(resultLength, originalLength - start);
final T[] result = (T[]) Array
.newInstance(original.getClass().getComponentType(), resultLength);
System.arraycopy(original, start, result, 0, copyLength);
return result;
}
项目:vlayout
文件:SortedList.java
private void addToData(int index, T item) {
if (index > mSize) {
throw new IndexOutOfBoundsException(
"cannot add item to " + index + " because size is " + mSize);
}
if (mSize == mData.length) {
// we are at the limit enlarge
T[] newData = (T[]) Array.newInstance(mTClass, mData.length + CAPACITY_GROWTH);
System.arraycopy(mData, 0, newData, 0, index);
newData[index] = item;
System.arraycopy(mData, index, newData, index + 1, mSize - index);
mData = newData;
} else {
// just shift, we fit
System.arraycopy(mData, index, mData, index + 1, mSize - index);
mData[index] = item;
}
mSize++;
}
项目:s-store
文件:CatalogMap.java
/**
* Return an array of the values in this CatalogMap.
* This will be generally faster than using an iterator because
* we will cache the array locally
* @return
*/
@SuppressWarnings("unchecked")
public T[] values() {
if (m_fastArray == null) {
synchronized (this) {
if (m_fastArray == null) {
int capacity = this.size();
T arr[] = (T[])Array.newInstance(this.m_cls, capacity);
int i = 0;
for (T t : m_items.values()) {
arr[i++] = t;
} // FOR
m_fastArray = arr;
}
} // SYNCH
}
return m_fastArray;
}
项目:parabuild-ci
文件:ArrayHolder.java
public Serializable disassemble(CollectionPersister persister) throws HibernateException {
int length = Array.getLength(array);
Serializable[] result = new Serializable[length];
for ( int i=0; i<length; i++ ) {
result[i] = persister.getElementType().disassemble( Array.get(array,i), getSession() );
}
/*int length = tempList.size();
Serializable[] result = new Serializable[length];
for ( int i=0; i<length; i++ ) {
result[i] = persister.getElementType().disassemble( tempList.get(i), session );
}*/
return result;
}
项目:EatDubbo
文件:ResultMergerTest.java
@Test
public void testArrayMerger() throws Exception {
String[] stringArray1 = {"1", "2", "3"};
String[] stringArray2 = {"4", "5", "6"};
String[] stringArray3 = {};
Object result = ArrayMerger.INSTANCE.merge(stringArray1, stringArray2, stringArray3);
Assert.assertTrue(result.getClass().isArray());
Assert.assertEquals(6, Array.getLength(result));
Assert.assertTrue(String.class.isInstance(Array.get(result, 0)));
for(int i = 0; i < 6; i++) {
Assert.assertEquals(String.valueOf(i + 1), Array.get(result, i));
}
int[] intArray1 = {1, 2, 3};
int[] intArray2 = {4, 5, 6};
int[] intArray3 = {7};
result = MergerFactory.getMerger(int[].class).merge(intArray1, intArray2, intArray3);
Assert.assertTrue(result.getClass().isArray());
Assert.assertEquals(7, Array.getLength(result));
Assert.assertTrue(int.class == result.getClass().getComponentType());
for (int i = 0; i < 7; i++) {
Assert.assertEquals(i + 1, Array.get(result, i));
}
}
项目:jdk8u-jdk
文件:BasicAttribute.java
/**
* Determines whether two arrays are equal by comparing each of their
* elements using <tt>Object.equals()</tt>.
*/
private static boolean arrayEquals(Object a1, Object a2) {
int len;
if ((len = Array.getLength(a1)) != Array.getLength(a2))
return false;
for (int j = 0; j < len; j++) {
Object i1 = Array.get(a1, j);
Object i2 = Array.get(a2, j);
if (i1 == null || i2 == null) {
if (i1 != i2)
return false;
} else if (!i1.equals(i2)) {
return false;
}
}
return true;
}
项目:redant
文件:PrimitiveConverter.java
/**
* 对基本类型进行类型转换
*/
@Override
@SuppressWarnings("unused")
protected Object doConvertValue(Object source, Class<?> toType, Object... params) {
/**
* 如果是基础类型,则直接返回
*/
if (source != null && (!PrimitiveTypeUtil.isPriType(source.getClass()) || !PrimitiveTypeUtil.isPriType(toType))) {
return null;
}
/**
* 如果都是数组类型,则构造数组
*/
if (source != null && source.getClass().isArray() && toType.isArray()) {
Object result;
Class<?> componentType = toType.getComponentType();
result = Array.newInstance(componentType, Array.getLength(source));
for (int i = 0; i < Array.getLength(source); i++) {
Array.set(result, i, convert(Array.get(source, i),componentType, params));
}
return result;
}
return doConvert(source, toType);
}
项目:dev-courses
文件:ArrayUtil.java
/**
* Returns the given array if newsize is the same as existing.
* Returns a new array of given size, containing as many elements of
* the original array as it can hold.
*/
public static Object resizeArrayIfDifferent(Object source, int newsize) {
int oldsize = Array.getLength(source);
if (oldsize == newsize) {
return source;
}
Object newarray =
Array.newInstance(source.getClass().getComponentType(), newsize);
if (oldsize < newsize) {
newsize = oldsize;
}
System.arraycopy(source, 0, newarray, 0, newsize);
return newarray;
}
项目:PlusGram
文件:SortedList.java
private void addToData(int index, T item) {
if (index > mSize) {
throw new IndexOutOfBoundsException(
"cannot add item to " + index + " because size is " + mSize);
}
if (mSize == mData.length) {
// we are at the limit enlarge
T[] newData = (T[]) Array.newInstance(mTClass, mData.length + CAPACITY_GROWTH);
System.arraycopy(mData, 0, newData, 0, index);
newData[index] = item;
System.arraycopy(mData, index, newData, index + 1, mSize - index);
mData = newData;
} else {
// just shift, we fit
System.arraycopy(mData, index, mData, index + 1, mSize - index);
mData[index] = item;
}
mSize++;
}
项目:parabuild-ci
文件:ArrayUtil.java
/**
* Returns the given array if newsize is the same as existing.
* Returns a new array of given size, containing as many elements of
* the original array as it can hold.
*/
public static Object resizeArrayIfDifferent(Object source, int newsize) {
int oldsize = Array.getLength(source);
if (oldsize == newsize) {
return source;
}
Object newarray =
Array.newInstance(source.getClass().getComponentType(), newsize);
if (oldsize < newsize) {
newsize = oldsize;
}
System.arraycopy(source, 0, newarray, 0, newsize);
return newarray;
}
项目:HCFCore
文件:ArrayIterator.java
/**
* Construct an ArrayIterator that will iterate over a range of values
* in the specified array.
*
* @param array the array to iterate over.
* @param startIndex the index to start iterating at.
* @param endIndex the index to finish iterating at.
* @throws IllegalArgumentException if <code>array</code> is not an array.
* @throws NullPointerException if <code>array</code> is <code>null</code>
* @throws IndexOutOfBoundsException if either index is invalid
*/
public ArrayIterator(final Object array, final int startIndex, final int endIndex) {
super();
this.array = array;
this.startIndex = startIndex;
this.endIndex = endIndex;
this.index = startIndex;
final int len = Array.getLength(array);
checkBound(startIndex, len, "start");
checkBound(endIndex, len, "end");
if (endIndex < startIndex) {
throw new IllegalArgumentException("End index must not be less than start index.");
}
}
项目:openjdk-jdk10
文件:AbstractVerifier.java
@SuppressWarnings("unchecked")
protected static <T> T resolveAnnotationValue(Class<T> expectedType, AnnotationValue value) {
if (value == null) {
return null;
}
if (expectedType.isArray()) {
ArrayList<Object> result = new ArrayList<>();
List<AnnotationValue> l = (List<AnnotationValue>) value.getValue();
for (AnnotationValue el : l) {
result.add(resolveAnnotationValue(expectedType.getComponentType(), el));
}
return (T) result.toArray((Object[]) Array.newInstance(expectedType.getComponentType(), result.size()));
}
Object unboxedValue = value.getValue();
if (unboxedValue != null) {
if (expectedType == TypeMirror.class && unboxedValue instanceof String) {
/*
* Happens if type is invalid when using the ECJ compiler. The ECJ does not match
* AP-API specification here.
*/
return null;
}
if (!expectedType.isAssignableFrom(unboxedValue.getClass())) {
throw new ClassCastException(unboxedValue.getClass().getName() + " not assignable from " + expectedType.getName());
}
}
return (T) unboxedValue;
}
项目:xproject
文件:BusinessAssert.java
private static boolean isEmptyObject(Object object){
if(object == null){
return true;
}else if(object instanceof String){
return ((String)object).trim().equals("") || ((String)object).trim().equals("null");
}else if(object instanceof Collection<?>){
return ((Collection<?>)object).isEmpty();
}else if(object instanceof Map<?,?>){
return ((Map<?,?>)object).isEmpty();
}else if(object.getClass().isArray()){
return Array.getLength(object) == 0;
}else{
return false;
}
}
项目:Android-UtilCode
文件:EmptyUtils.java
/**
* 判断对象是否为空
*
* @param obj 对象
* @return {@code true}: 为空<br>{@code false}: 不为空
*/
public static boolean isEmpty(Object obj) {
if (obj == null) {
return true;
}
if (obj instanceof String && obj.toString().length() == 0) {
return true;
}
if (obj.getClass().isArray() && Array.getLength(obj) == 0) {
return true;
}
if (obj instanceof Collection && ((Collection) obj).isEmpty()) {
return true;
}
if (obj instanceof Map && ((Map) obj).isEmpty()) {
return true;
}
if (obj instanceof SparseArray && ((SparseArray) obj).size() == 0) {
return true;
}
if (obj instanceof SparseBooleanArray && ((SparseBooleanArray) obj).size() == 0) {
return true;
}
if (obj instanceof SparseIntArray && ((SparseIntArray) obj).size() == 0) {
return true;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
if (obj instanceof SparseLongArray && ((SparseLongArray) obj).size() == 0) {
return true;
}
}
return false;
}
项目:annotation-processor-toolkit
文件:AnnotationValueUtils.java
/**
* Converts an Attribute List to an array of passed type.
*
* @param annotatedValues The list to convert
* @param type The arrays target type
* @param <T> generic Type
* @return an array of passed type containing all casted elements of passed annotatedValues list or null if passed annotatedValues are null.
* @throws ClassCastException will be thrown if Attributes of List cannot be cast to passed type
*/
public static <T> T[] convertAndCastAttributeValueListToArray(List<Attribute> annotatedValues, Class<T> type) {
if (annotatedValues == null) {
return null;
}
T[] result = (T[]) Array.newInstance(type, annotatedValues.size());
for (int i = 0; i < annotatedValues.size(); i++) {
result[i] = (T) annotatedValues.get(i).getValue();
}
return result;
}
项目:X4J
文件:DynamicParsers.java
@Override
public Object parse(String input, ParserHelper helper) {
if (!helper.getRawTargetClass().isArray()) {
return TRY_NEXT;
}
List<String> strList = helper.split(input);
Class<?> componentType = helper.getComponentClass();
Object result = Array.newInstance(componentType, strList.size());
for (int i = 0; i < strList.size(); i++) {
Object element = helper.parse(strList.get(i), componentType);
Array.set(result, i, element);
}
return result;
}
项目:openjdk-jdk10
文件:ArrayBeanInfoImpl.java
public void serializeBody(Object array, XMLSerializer target) throws SAXException, IOException, XMLStreamException {
int len = Array.getLength(array);
for( int i=0; i<len; i++ ) {
Object item = Array.get(array,i);
// TODO: check the namespace URI.
target.startElement("","item",null,null);
if(item==null) {
target.writeXsiNilTrue();
} else {
target.childAsXsiType(item,"arrayItem",itemBeanInfo, false);
}
target.endElement();
}
}
项目:OpenJSharp
文件:Class.java
private static Class<?> toClass(Type o) {
if (o instanceof GenericArrayType)
return Array.newInstance(toClass(((GenericArrayType)o).getGenericComponentType()),
0)
.getClass();
return (Class<?>)o;
}
项目:hibatis
文件:ArrayUtils.java
public static <T> T[] toArray(List<T> list){
int length = list.size();
if(length == 0){
return (T[])list.toArray();
}
Class<?> componentType = list.get(0).getClass();
T[] array = (T[]) Array.newInstance(componentType, length);
for (int i = 0; i < length; i++) {
array[i] = list.get(i);
}
return array;
}
项目:cornerstone
文件:ArrayUtils.java
public static <T> T[] concatenate(final T[] a, final T[] b) {
int aLen = a.length;
int bLen = b.length;
@SuppressWarnings("unchecked")
T[] rtn = (T[]) Array.newInstance(a.getClass().getComponentType(), aLen + bLen);
System.arraycopy(a, 0, rtn, 0, aLen);
System.arraycopy(b, 0, rtn, aLen, bLen);
return rtn;
}
项目:marathonv5
文件:JSONArray.java
/**
* Construct a JSONArray from an array
*
* @throws JSONException
* If not an array.
*/
public JSONArray(Object array) throws JSONException {
this();
if (array.getClass().isArray()) {
int length = Array.getLength(array);
for (int i = 0; i < length; i += 1) {
this.put(JSONObject.wrap(Array.get(array, i)));
}
} else {
throw new JSONException("JSONArray initial value should be a string or collection or array.");
}
}
项目:dubbo2
文件:ArrayDeserializer.java
public ArrayDeserializer(Class componentType)
{
_componentType = componentType;
if (_componentType != null) {
try {
_type = Array.newInstance(_componentType, 0).getClass();
} catch (Exception e) {
}
}
if (_type == null)
_type = Object[].class;
}
项目:openjdk-jdk10
文件:ServiceFinder.java
/**
* Returns discovered objects all at once.
*
* @return
* can be empty but never null.
*
* @throws ServiceConfigurationError
*/
@SuppressWarnings({"unchecked"})
public T[] toArray() {
List<T> result = new ArrayList<T>();
for (T t : this) {
result.add(t);
}
return result.toArray((T[])Array.newInstance(serviceClass,result.size()));
}
项目:ModularAdapter
文件:SortedListItemManager.java
@Override
public Transaction<T> remove(@NonNull Collection<T> items) {
mActions.add(list -> {
@SuppressWarnings("unchecked")
final T[] array = items.toArray((T[]) Array.newInstance(mItemClass, items.size()));
Arrays.sort(array, mComparator);
for (T item : array) {
mSortedList.remove(item);
}
});
return this;
}
项目:directory-mavibot
文件:PersistedValueHolder.java
/**
* Remove a value from an array
*/
private V removeFromArray( V value )
{
checkAndDeserialize();
// First check that the value is not already present in the ValueHolder
int pos = findPos( value );
if ( pos < 0 )
{
// The value does not exists : nothing to do
return null;
}
// Ok, we just have to delete the new element at the right position
// First, copy the array
V[] newValueArray = ( V[] ) Array.newInstance( valueSerializer.getType(), valueArray.length - 1 );
System.arraycopy( valueArray, 0, newValueArray, 0, pos );
System.arraycopy( valueArray, pos + 1, newValueArray, pos, valueArray.length - pos - 1 );
// Get the removed element
V removedValue = valueArray[pos];
// And switch the arrays
valueArray = newValueArray;
return removedValue;
}
项目:slardar
文件:ArrayUtils.java
public static int[] addAll(int[] array, int... elems) {
int srcLength = getLength(array);
int elemsLength = Array.getLength(elems);
if (srcLength < elemsLength) {
throw new ArrayIndexOutOfBoundsException("src length is " + srcLength +
", but elemes length is " + elemsLength);
}
int[] expanedArray = (int[]) expandSpace(array, elemsLength, Integer.TYPE);
System.arraycopy(elems, 0, expanedArray, srcLength, elemsLength);
return expanedArray;
}
项目:async-engine
文件:CommonUtils.java
/**
* Checks whether an object is empty, in a null safe manner Checks cases of
* String, Collection, Map, Array objects
*
* @param value The object to check
* @return <tt>true</tt> if the object is empty or <tt>null</tt>
*/
public static boolean isEmpty(Object value) {
if (value == null) {
return true;
} else if (value instanceof String) {
return (((String) value).trim().length() == 0);
} else if (value instanceof Collection) {
return ((Collection<?>) value).isEmpty();
} else if (value instanceof Map) {
return ((Map<?, ?>) value).isEmpty();
} else {
return value.getClass().isArray() && (Array.getLength(value) == 0);
}
}