【发布时间】:2018-04-21 08:18:10
【问题描述】:
更新:谢谢,现在我明白了,下面写的是不可能的。
假设我想为
Integer创建一个add方法,我会 喜欢这样工作:x.add(y),其中x和y是Integers。有可能这样做吗?我唯一能做的 想到的是创建一个扩展 Integer 的不同类并添加一个 方法,但是还有其他方法吗?
为了清楚起见,我首先质疑它的原因是我需要创建一个应该能够执行的通用类,例如,添加 Integer 和 BigInteger 而我没有不想让 if 案例检查 T 是什么类来做到这一点。因此,我认为如果可以执行上述操作会很有用。现在我仍然不清楚如何做到这一点。很抱歉提出如此令人困惑的问题。
附:我是 Java 新手,也不是以英语为母语的人,所以我知道这个问题可能很愚蠢或者已经回答了,如果是这样,我很抱歉。
【问题讨论】:
-
不,你不能在 JDK 的类中添加方法。因为
Integer被标记为final,所以你也不能扩展它。 -
你不需要添加这个方法。请参阅:docs.oracle.com/javase/tutorial/java/data/autoboxing.html 但请注意,原始包装器和 String 是不可变的。
-
你不能更改现有JDK库中的类!你必须给自己的班级写信。
标签: java class generics methods