簡體   English   中英

將值分配給通用類的通用方法的屬性-Java

[英]Assign a value to an attribute of a generic method of a generic class - Java

我需要一個通用方法來為通用類的屬性分配值; 我將舉一個例子來更好地解釋。 我想我需要的方法應該是這樣的:

import java.util.function.Function;
public class Utilities {

 public static <T> Object assignValueToAttribute( Object MY_Object__Arg, Function<T, ?> MY_AttributeValueExtractor_Arg, Object MY_AttributeValueToEqual_Arg) {
    return ....
} 

}

例:

假設我有一個名為“ Car”的類,並且帶有一個非靜態方法“ setColor()”。 我的通用方法應返回Car的等距距離,例如“ myCar”,並在屬性“ color”處分配值“ red”

myCar.setColor("red"); 

我的通用方法可以通過如下方式調用:

Car myCar= (Car) Utilities.assignValueToAttribute(myCar, oggetto -> oggetto.setColor(), "red");

問題:我不知道對該方法進行編碼很熱...

你近了 您需要兩種通用類型:對象(bean)的類型和值的類型。 您需要BiConsumer ,而不是Function,因為set方法不會返回任何內容。

public static <T, V> T assignValueToAttribute(T obj, BiConsumer<T, V> attributeSetter, V value) {
    attributeSetter.accept(obj, value);
    return obj;
}

然后可以按以下方式調用它:

assignValueToAttribute(myCar, Car::setColor, "red");

請注意,重新分配myCar是沒有意義的。 它與方法調用之前的對象相同。

暫無
暫無

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

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