我正在编写一个Minecraft插件。我有一个小问题。所以我们有这个:
int ok = Integer.parseInt(test) - 1;
lores.set(1, ChatColor.RED + ok);
现在的问题是,第二行出现了错误。 +
和ChatColor
未定义int
运算符。 int ok
所做的是,它从他们手中的项目的Minecraft传说中减去一个数字。说他们的项目是传说5 uses remaining!
的坚持。现在说他们右击它。它将说剩下4种用途。除了这个小问题之外,一切似乎都很有效..
答案 0 :(得分:4)
您的+
运算符有两个操作数,一个ChatColor
对象(Object
)和ok
(int
)。根据{{3}}
如果
+
运算符的任一操作数的类型为The Java Language Specification §15.18,则操作为字符串连接。否则,
+
运算符的每个操作数的类型必须是可转换(String)到原始数字类型的类型,否则会发生编译时错误强>
因此,Object
运算符可操作的+
之间的唯一操作将是:
String
+(任何内容,包括null
)Number
的子类型或原始数值时。 ...这不是这种情况,因此您会因无效语法而遇到编译时错误:ChatColor.RED + ok
您可以挽救此操作并使用以下任一方法正确连接字符串:
ChatColor.RED.toString() + ok
or
ChatColor.RED + Integer.toString(ok)
答案 1 :(得分:0)
问题是lore()
的参数是一个字符串。
所以你需要这样做:
lore.set(1, ChatColor.RED + "" + ok);
现在应该可以了。