基类:
class Fruit {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
实现类:
class Banana extends Fruit {
public Banana() {
setName("banana");
}
}
class Orange extends Fruit {
public Orange() {
setName("Orange");
}
}
泛型函数 绑定类型
public static <T extends Fruit> String getFruitName(T t) {
return t.getName();
}
定义泛型接口
public interface Comparable<T> {
public boolean comparTo(T i);
}
public static <T extends Comparable> T min(T... a) {
T smallest = a[0];
for (T item : a) {
if (smallest.comparTo(item)) {
smallest = item;
}
}
return smallest;
}
定义接口的实现类
public class StringCompare implements Comparable<StringCompare> {
private String mStr;
public StringCompare(String string){
this.mStr = string;
}
@Override
public boolean comparTo(StringCompare str) {
if (mStr.length() > str.mStr.length()){
return true;
}
return false;
}
}
使用:
@Override
protected void onResume() {
super.onResume();
showGenericity();
StringCompare result = min(new StringCompare("123"),new StringCompare("234"),new StringCompare("59897"));
Log.d(TAG,"min:"+result.mStr);
}
private void showGenericity() {
String name1 = getFruitName(new Orange());
String name2 = getFruitName(new Banana());
Log.e("Fruit:", name1.toString() + "\n" + name2.toString());
}