Java 对自定义类型使用泛型

Java 对自定义类型使用泛型,java,generics,Java,Generics,我正在使用一些以自定义方式编写每个类型的方法。签名如下: public void write(Boolean value); public void write(Byte value); ... public void write(Integer value); public void write(Long value); 由于签名是相同的,但是改变了类型,我一直在考虑使用泛型和一个接收未知类型并使用正确方法的方法。类似于此: public <T> void doWrite(T d

我正在使用一些以自定义方式编写每个类型的方法。签名如下:

public void write(Boolean value);
public void write(Byte value);
...
public void write(Integer value);
public void write(Long value);
由于签名是相同的,但是改变了类型,我一直在考虑使用泛型和一个接收未知类型并使用正确方法的方法。类似于此:

public <T> void doWrite(T data) {
    write(data);
}

任何提示我如何才能做到这一点?

作为经验法则,当代码获得很多类型的查询、实例时,应该考虑使用泛型。目的是消除这种铸造。


你的案子似乎不是这样的。相反,您将通过按照要求的方式重构代码来引入这种类型查询,因此,我认为在定义类本身时,您不需要指定类型。如果您想使用泛型,您必须在doWrite中重写写入的代码,但我认为执行ifdata instanceof Boolean等操作不是一个好主意。所以如果你有不同的方法做不同的事情,为什么你需要泛型?好的,我理解,但很遗憾,因为我的代码在不同的方法中是相同的,因为只有签名改变了给定的类型。那么你为什么要写这个..和一个接收未知类型并使用正确方法的方法。这意味着有不同的代码相应地处理每种类型。如果代码是相同的,那么你就可以安全地使用泛型方法,去掉其他方法。这是有原因的,这些代码实际上被封装在不同的类中,比如说类a,对于外部类的使用者来说是隐藏的,比如说类B。doWrite在类B中实现,其思想是作为类a的包装器,其中编写自定义代码来处理每个类型,因此doWrite中的代码对于每个类型都是相同的。
The method write(Boolean) in the type Writer is not applicable for the arguments (T).