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

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

如何創建接受符號的構造函數,例如:*、+、() 等

如何創建接受符號的構造函數,例如:*、+、() 等

湖上湖 2023-11-01 21:58:19
我試圖通過構造函數傳遞某些類型的字符(例如標題中的字符),然后為其分配一個枚舉。我有一個具有三個值的枚舉類:NUMBER、STRING 和 SYMBOL。我有三個構造函數:(float x) {}(String str){}(Symbol value) {}當傳遞浮點數時,我將變量“type”分配給 Type.STRING。對于字符串也是如此,但是對于 Type.STRING。如何對各種符號(例如標題中的符號)執行此操作?當我創建 Entry 實例并嘗試傳遞加號字符 (+) 時,我收到消息“標記“+”上存在語法錯誤,請刪除此標記”。public class Entry{    private Type type;    public Entry(Type value) {        this.type = Type.SYMBOL;    }}
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

在java中+是一個運算符。它只能用作表達式的一部分,不能單獨使用。

+但是,您可以傳遞包含如下內容的字符串:"+"或使用代表不同運算符的枚舉:

enum?Operator?{
????PLUS,?MINUS;
}

然后你的構造函數可以接受這樣的枚舉:

public?Entry(Operator?op)?{
}

另一種選擇是創建一個“加法”函數,可以將兩個元素加在一起,并將該函數傳遞給構造函數。然而,這有點棘手,需要知道你要添加什么類型的東西:

BiFunction<MyObject,?MyObject,?MyObject>?addition?=??(a,b)?->?{
????//implement?a+b?here;
????//return?result;
????}

那么構造函數可能是這樣的:

public?Entry(BiFunction<MyObject,?MyObject,?MyObject>?func)?{
}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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