gpt4 book ai didi

java - java 中与 ENUM 不兼容的映射条目

转载 作者:行者123 更新时间:2023-12-02 03:48:05 27 4
gpt4 key购买 nike

为什么我得到 "The return type is incompatible with Map.Entry<SEND,CANDataSendInfo>.getKey()"

在这里,我试图创建由枚举作为键和类对象作为值组成的对象,但我在 public SEND getKey() 行遇到问题

package cantestbus;

import java.util.Map;

public class SendKV<SEND , CANDataSendInfo> implements Map.Entry<SEND , CANDataSendInfo>
{
enum SEND
{
SEND_0x41, SEND_0x42, SEND_0x43, SEND_0x44, SEND_0x61, SEND_0x62, SEND_0x63, SEND_0x64
}

private SEND key;
private CANDataSendInfo value;

public SendKV(SEND key, CANDataSendInfo value)
{
this.key = key;
this.value = value;
}

public SEND setKey(SEND key)
{
return this.key = key;
}

public SEND getKey()
{
return this.key;
}

public CANDataSendInfo setValue(CANDataSendInfo value)
{
return this.value = value;
}

public CANDataSendInfo getValue()
{
return this.value;
}

}

最佳答案

这就是问题:

public class SendKV<SEND , CANDataSendInfo> implements Map.Entry<SEND , CANDataSendInfo>

您正在声明一个带有名为 SENDCANDataSendInfo 类型参数的通用类。您不希望这是通用的 - 您希望 SEND 表示现有类型 SEND 等。只需将您的声明更改为:

public class SendKV implements Map.Entry<SEND, CANDataSendInfo>

(顺便说一句,映射条目可变是很奇怪的,尤其是在键中。除非您有充分的理由,否则我强烈建议您在构造函数中获取键和值,将变量设为最终变量,并删除 setter 。我还将类设为最终变量。)

关于java - java 中与 ENUM 不兼容的映射条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36147928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com