我正在尝试添加一个函数,将唯一的 id 添加到 java 中的对象。
我有一个返回对象的函数:
ItemStack is=ent.getKiller().getItemInHand();
我创建了一个扩展 ItemStack 类的 java 类,并尝试将对象强制转换为此类。
import org.bukkit.inventory.ItemStack;
import java.util.UUID;
public class UniqueItem extends ItemStack{
private String uid="";
public UniqueItem(){
uid=UUID.randomUUID().toString();
}
public String getUniqueID(){
return uid;
}
}
UniqueItem is=(UniqueItem)ent.getKiller().getItemInHand();
它给我带来了一个错误,我不明白为什么。
请帮助我解决我的问题或给我一个替代解决方案。
谢谢
最佳答案
您在运行时收到 ClassCastException
,因为您尝试强制转换不是 UniqueItem
类型的项目
此外,延长类(class)也不会帮助你。相反,在 ItemStack 对象周围创建一个包装类,该类与对象一起维护唯一的 ID。
试试这个:
// wrapper class
public class UniqueItem {
ItemStack item;
private String uid="";
public UniqueItem(ItemStack item) {
this.item = item;
uid=UUID.randomUUID().toString();
}
public String getUniqueID(){
return uid;
}
}
关于java - 向现有 java 对象添加方法和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33718699/