簡體   English   中英

如何為一個已經存在的類創建一個方法,以便它使用一個變量,從該變量中將其稱為參數?

[英]How to create a method for an already existing class so that it uses a variable, from which it is called as an argument?

更新:謝謝,現在我知道不可能做下面寫的事情。

假設我想為Integer創建一個add方法,並希望它以這種方式工作: x.add(y) ,其中xyIntegers 有可能這樣做嗎? 我唯一想到的就是創建一個不同的類來擴展Integer並為其添加一個方法,但是還有其他方法嗎?

明確地說,我首先質疑它的原因是,我需要創建一個應該能夠做到的通用類,例如,為IntegerBigInteger都加法,並且我不想創建檢查哪個班是T做到這一點。 因此,我認為如果可以執行上述操作將很有用。 現在我仍然不清楚該怎么做。 很抱歉這樣一個令人困惑的問題。


PS:我是Java的新手,也不是講英語的母語的人,所以我知道這個問題可能很愚蠢,或者已經回答了,如果是這樣,對不起。

我有一個不清楚的問題。 如果要在現有Integer類中創建add方法,則不能創建它,因為它是最終的。 相反,您可以在自己的類中創建一個add方法。

public int add (Integer a, Integer b) {
  return a + b;
}

更新:

明確地說,我首先質疑它的原因是,我需要創建一個應該能夠做到的通用類,例如,為Integer和BigInteger都加法,並且我不想創建檢查哪個班是T做到這一點。

為什么不使用java.lang.Number作為泛型類型, IntegerBigInteger都是java.lang.Number子類。

不,您不能向Integer添加方法,也不能創建擴展Integer的類,因為Integerfinal ,final類不能在Java中繼承。

如果您只想添加兩個Integer對象,請使用+因為Java中具有自動裝箱和拆箱功能,請查看以下內容: https : //docs.oracle.com/javase/specs/jls/se8/html/jls-5 .html#jls-5.1.7

您可以創建util類以提供靜態方法來解決此問題:

class Integers {
    public static Integer add(Integer i1, Integer i2) {
        return i1 + i2;
    }
}

順便說一句,您可以在Kotlin中添加擴展方法,在其中您可以執行1.plus(2)操作來執行plus操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM