亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從泛型類調用方法作為參數

如何從泛型類調用方法作為參數

幕布斯6054654 2021-12-01 16:44:32
我試圖讓我的代碼使用泛型,但我似乎無法使用泛型讓它工作。任何幫助,將不勝感激。我有 3 個班級:課堂、課程、教師我有以下工作代碼 3 次:(隨著班級的小變化)private ObservableList<Classroom> parseClassrooms() {    // create new Observable List    ObservableList<Classroom> classrooms = FXCollections.observableArrayList();    // get lines from file;    ArrayList<String> arrayList = fhClassroom.read();    for (String line : arrayList) {        classrooms.add(Classroom.fromString(line));    }    return classrooms;}我的課程中的方法:@Overridepublic String toString() {    return name;}public static Classroom fromString(String line) {    return new Classroom(line);}是否可以使這種方法通用?并將類作為參數傳遞?我想要以下內容:private ObservableList<T> parseClassrooms(T, FileHelper fh) {    // create new Observable List    ObservableList<T> items = FXCollections.observableArrayList();    // get lines from file;    ArrayList<String> arrayList = fh.read();    for (String line : arrayList) {        items.add(T.fromString(line));    }    return items;}
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

我最好的嘗試:


import java.util.ArrayList;

import java.util.function.Function;


public class Helper {


    public static <T> ObservableList<T> parseItems(Function<String, T> lineToItemFunction, FileHelper fh) {

        // create new Observable List

        ObservableList<T> items = FXCollections.observableArrayList();


        // get lines from file;

        ArrayList<String> arrayList = fh.read();


        for (String line : arrayList) {

            items.add(lineToItemFunction.apply(line));

        }


        return items;

    }

}

你這樣稱呼它:


ObservableList<ClassRoom> classRooms = Helper.parseItems(ClassRoom::fromLine, fileHelper);



查看完整回答
反對 回復 2021-12-01
  • 1 回答
  • 0 關注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號