java中基本类型的通用方法 [英] Generic methods for primitive types in java
问题描述
下面是一个例子:
import java.util.Collection;
/ **
*由IDEA于16/11/14创建。
* /
public class Size
{
public static int size(Iterable<?> data)
{
if(data instanceof Collection){
return((Collection<?>)data).size();
}
int counter = 0;
for(Object i:data){
counter ++;
}
return counter;
}
public static int size(int [] data)
{
return data.length;
}
public static int size(double [] data)
{
return data.length;
public static int size(float [] data)
{
return data.length;
}
public static int size(short [] data)
{
return data.length;
public static int size(boolean [] data)
{
return data.length;
}
public static int size(char [] data)
{
return data.length;
}
public static< T> int size(T [] data)
{
return data.length;
$ b $ <$ code>
尺寸$对于所有基元数组,c $ c>方法都是相同的。有没有办法避免这种冗余?
不,没有。这是使用原语的价格。
您可以在 Here is an example: The No, there is not. That's the price of working with primitives. You can see examples of this unavoidable redundancy in many methods in the 这篇关于java中基本类型的通用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! java.util.Arrays $中的许多方法中看到这种不可避免的冗余示例c $ c> class,其中每种原始数组都有不同的方法(例如:copyOf,sort,swap等)。
import java.util.Collection;
/**
* Created by IDEA on 16/11/14.
*/
public class Size
{
public static int size(Iterable<?> data)
{
if (data instanceof Collection) {
return ((Collection<?>) data).size();
}
int counter = 0;
for (Object i : data) {
counter++;
}
return counter;
}
public static int size(int[] data)
{
return data.length;
}
public static int size(double[] data)
{
return data.length;
}
public static int size(float[] data)
{
return data.length;
}
public static int size(short[] data)
{
return data.length;
}
public static int size(boolean[] data)
{
return data.length;
}
public static int size(char[] data)
{
return data.length;
}
public static <T> int size(T[] data)
{
return data.length;
}
}
size
method is the same for all primitive arrays. Is there a way to avoid this redundancy?java.util.Arrays
class, where each kind of primitive array has a different method (examples : copyOf, sort, swap, etc...).