某些实现一个接口的类,必须有两个常量,记录该类的两个默认值,供外部访问,如:public class MyClass implements Iface {
static final String name="abc";
static final int num=12;
...
}
如果仅仅要求大家在类中必须写这两个常量,而没有约束或提示,似乎不够好,于是在接口中加一个方法:public class returnValue<A,B>{
public final A name;
public final B num;
public ReturnValue(A a,B b){
name=a;
num=b;
}
}
public interface Iface {
ReturnValue<String ,Integer> getReturnValue();
....
}
//实现类里就必须有这个方法了
public class MyClass implements Iface {
public ReturnValue<String ,Integer> getReturnValue(){
return new ReturnValue<String,Integer>("abc",12);
}
...
}我想知道,这样是好的做法吗?
static final String name="abc";
static final int num=12;
...
}
如果仅仅要求大家在类中必须写这两个常量,而没有约束或提示,似乎不够好,于是在接口中加一个方法:public class returnValue<A,B>{
public final A name;
public final B num;
public ReturnValue(A a,B b){
name=a;
num=b;
}
}
public interface Iface {
ReturnValue<String ,Integer> getReturnValue();
....
}
//实现类里就必须有这个方法了
public class MyClass implements Iface {
public ReturnValue<String ,Integer> getReturnValue(){
return new ReturnValue<String,Integer>("abc",12);
}
...
}我想知道,这样是好的做法吗?
我记得在接口中的域全部是static和final的,不是吗?
在接口定义的变量,在不同的实现类中可以指定不同的值吗?
我记得在接口中的域全部是static和final的,不是吗?
[/Quote]确实不能,如果每个实现类要不同的我试了一下,你这样写的比较活但你这样写,多写了一个类,有点像代理模式
那很多业务方法都会在returnValue实现了,
如果常量在MyClass 赋值那就完美了
这种方式不好!没有必要用范型,直接写一个类就行,用范型在这种情况下可能会导致错误的使用,因为想返回的是(String,int),用范型类实际上可以返回任意类。