我有一個有2個泛型參數的接口,但有時需要抽象方法來接受1個泛型參數。我該如何做到這一點?我看到它的方式,我不能使泛型可選,而且如果我在接口中編寫一個重載的方法,它將不必要地實現在一些Java類(這將實現該接口)不必要的地方。現在我傳遞參數化,這是需要兩次在類頭中實現接口和內部函數,因爲我強制必須傳遞2個參數。我卡住了。任何方向?如何在java中的接口中使通用參數可選?
public interface ITaskPermissionHandler<T, V> {
String getType();
boolean hasPermission(T clazz, UserRef user, String type, V clazz1);
}
public class CreateTaskPermission implements ITaskPermissionHandler<Task,Task> {
@Override
public String getType() {
return TaskConstants.CREATE_TASK;
}
@Override
public boolean hasPermission(Task task, UserRef user, String type, Task task1) {
return type.equalsIgnoreCase(TaskConstants.CREATE_TASK);
}
}
它看起來並不像那些仿製藥正在贏得你什麼,反正。你爲什麼擁有它們?直到我真正瞭解你想要完成的事情之前,我都猶豫不決。 – Makoto
我在這裏看不到問題。這是一個常用的方法。只要看看一個帶有'String'的'Map'作爲鍵和值。然後你會寫'Map'。 –
QBrute
@QBrute:是的,但那些實際上映射到有意義的東西。 OP的代碼甚至不會在任何地方使用這些泛型*。 – Makoto