Java 如何将所有类放在一个泛型类类型下?
我有n个java类,每个类都包含自己的变量集。 我有一个方法,它必须根据某些条件接受这n个类中的一个作为参数。Java 如何将所有类放在一个泛型类类型下?,java,class,generics,subclass,Java,Class,Generics,Subclass,我有n个java类,每个类都包含自己的变量集。 我有一个方法,它必须根据某些条件接受这n个类中的一个作为参数。 如何将所有这些类作为泛型类型的子类,以便我的方法签名接受所有这些不同的类型?我不想使方法过载。如果将类型“Object”用于参数,我将失去传递的输入参数类的性质。定义一个所有类都实现的接口。然后在方法头部声明您的参数作为该接口的类型。定义一个所有类都实现的接口。然后在方法头部声明您的参数作为该接口的类型 如何将所有这些类作为泛型类型的子类,以便我的方法签名接受所有这些不同的类型 简单地
如何将所有这些类作为泛型类型的子类,以便我的方法签名接受所有这些不同的类型?我不想使方法过载。如果将类型“Object”用于参数,我将失去传递的输入参数类的性质。定义一个所有类都实现的接口。然后在方法头部声明您的参数作为该接口的类型。定义一个所有类都实现的接口。然后在方法头部声明您的参数作为该接口的类型 如何将所有这些类作为泛型类型的子类,以便我的方法签名接受所有这些不同的类型 简单地创建一个抽象类,MySuperClass,这个类由您想要传递给该方法的所有类继承。这个超类具有通用的功能和属性 另一种方法是,如果您的子类可能扩展其他类;或者,类之间没有什么共同点,只是它们都被传递给了你的方法。你可以有一个接口,比如说MySuperClass。理想情况下,我喜欢从I开始的接口,比如IMySuperClass 我不想使方法过载 一旦您准备好了超类或接口,您的方法签名将类似于myMethodParam1 val1、MySuperClass myObj、Param3 val3 简单 如何将所有这些类作为泛型类型的子类,以便我的方法签名接受所有这些不同的类型 简单地创建一个抽象类,MySuperClass,这个类由您想要传递给该方法的所有类继承。这个超类具有通用的功能和属性 另一种方法是,如果您的子类可能扩展其他类;或者,类之间没有什么共同点,只是它们都被传递给了你的方法。你可以有一个接口,比如说MySuperClass。理想情况下,我喜欢从I开始的接口,比如IMySuperClass 我不想使方法过载 一旦您准备好了超类或接口,您的方法签名将类似于myMethodParam1 val1、MySuperClass myObj、Param3 val3
简单。如果您不能像其他人建议的那样使用多态性,那么您可以使用Java泛型来实现这一点: 例如,这可用于将任何对象放入缓存:
public <T> void doSomethingWithObject(final T object) {
...
}
你可以这样称呼它:例如,使用字符串
yourInstance.<String> doSomethingWithObject(object);
如果您不能像其他人建议的那样使用多态性,那么您可以使用Java泛型来实现这一点: 例如,这可用于将任何对象放入缓存:
public <T> void doSomethingWithObject(final T object) {
...
}
你可以这样称呼它:例如,使用字符串
yourInstance.<String> doSomethingWithObject(object);
这是你想要的吗
public interface common<T extends common<?>> {
public void commonMethod(T param, ...);
}
public class child implements common<child> {
public void commonMethod(child param, ...) {
...
}
}
这是你想要的吗
public interface common<T extends common<?>> {
public void commonMethod(T param, ...);
}
public class child implements common<child> {
public void commonMethod(child param, ...) {
...
}
}
我试过这种方法。但是我必须在方法中显式地键入cast对象以恢复其行为。不,如果接口定义了所有需要的方法,则不需要强制转换。此外,你的类应该有一些共同的东西,所以接口,否则你的设计可能是错误的,或者你应该考虑重载。那么你想要什么?您是否正在寻找如何编写一个方法,该方法接受泛型类型,并且不强制转换它就可以接受所有子类的所有方法?:-?我试过这种方法。但是我必须在方法中显式地键入cast对象以恢复其行为。不,如果接口定义了所有需要的方法,则不需要强制转换。此外,你的类应该有一些共同的东西,所以接口,否则你的设计可能是错误的,或者你应该考虑重载。那么你想要什么?您是否正在寻找如何编写一个方法,该方法接受泛型类型,并且不强制转换它就可以接受所有子类的所有方法?:-?与实现接口相同。我必须在方法内部显式地键入cast。如果没有公共功能,我建议重载该方法。若有共同的功能,那个么抽象事物并传递给相同的方法是有意义的。这和实现接口是一样的。我必须在方法内部显式地键入cast。如果没有公共功能,我建议重载该方法。如果有共同的功能,那么抽象事物并传递给相同的方法是有意义的。这看起来很有希望。我会试试这个看起来很有希望。我试试这个